Python如何实现批量自动整理文件
发表于:2024-11-29 作者:千家信息网编辑
千家信息网最后更新 2024年11月29日,这篇文章主要介绍"Python如何实现批量自动整理文件",在日常操作中,相信很多人在Python如何实现批量自动整理文件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"P
千家信息网最后更新 2024年11月29日Python如何实现批量自动整理文件
这篇文章主要介绍"Python如何实现批量自动整理文件",在日常操作中,相信很多人在Python如何实现批量自动整理文件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Python如何实现批量自动整理文件"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
为了实现这样的小工具,我们先设想有下面这些功能。
1、可以自定义整理某一个路径下面的所有需要被整理的文件。
2、默认情况下,使用文件后缀作为同一种类文件的文件夹名称,有其他想法的小伙伴可自行扩展。
将使用到的python模块导入到代码块中。
import os # 文件/文件夹应用操作import shutil # 移动文件import logging # 使用日志logging来打印日志
选择好需要整理的原始文件目录。
下面是整理完成后的效果图,根据文件类型对各种文件进行整理。
在代码块中加入日志打印的模块,这里日志打印选择的是logging模块。
logger = logging.getLogger('自动归纳文件') # 日志名称logging.basicConfig(format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s') # 日志打印格式logger.setLevel(logging.DEBUG) # 日志打印级别
下面是文件整理的代码块的全部实现方式,主要部分都加上注释说明。
dir = input('请输入需要整理的文件目录: \n') # 需要整理的文件路径if os.path.isdir(dir): logger.info('当前目录[' + dir + ']校验成功!') paths = [] for file_path, dir_names, file_names in os.walk(r'' + dir): for file_name in file_names: try: file_name_path = os.path.join(file_path, file_name) dir_ = file_name.split('.')[1] new_file_name_path = os.path.join(dir, dir_) # 校验新的文件夹是否已经存在 if os.path.isdir(new_file_name_path): # 直接移动文件 shutil.move(file_name_path, new_file_name_path) else: # 创建好文件夹后移动文件 os.mkdir(new_file_name_path) shutil.move(file_name_path, new_file_name_path) paths.append(os.path.join(new_file_name_path, file_name)) except: logger.error('[' + file_name_path + ']移动发生异常,执行下一个!') for path in paths: logger.info('移动完成的文件:' + str(path))else: logger.error('输入的文件夹或者目录不存在!')
以上就是自动整理文件的全部代码块的实现部分,使用时依次将代码块copy到自己的开发工具中直接启动就可。
进阶
当文件在不同路径下,又该如何实现批量管理呢,下面是实现的代码,可以参考一下
import osimport globimport shutil'''@Author: huny@date: 2020.12.06@function: 文件整理'''class FileType(): def __init__(self): self.filetype = { "图片": [".jpeg", ".jpg", ".tiff", ".gif", ".bmp", ".png", ".bpg", "svg", ".heif", ".psd"], "视频": [".avi", ".flv", ".wmv", ".mov", ".mp4", ".webm", ".vob", ".mng", ".qt", ".mpg", ".mpeg", ".3gp", ".mkv"], "音频": [".aac", ".aa", ".aac", ".dvf", ".m4a", ".m4b", ".m4p", ".mp3", ".msv", ".ogg", ".oga", ".raw", ".vox", ".wav", ".wma"], "文档": [".oxps", ".epub", ".pages", ".docx", ".doc", ".fdf", ".ods", ".odt", ".pwi", ".xsn", ".xps", ".dotx", ".docm", ".dox",".rvg", ".rtf", ".rtfd", ".wpd", ".xls", ".xlsx", ".ppt", ".pptx", ".csv", ".pdf", ".md",".xmind"], "压缩文件": [".a", ".ar", ".cpio", ".iso", ".tar", ".gz", ".rz", ".7z", ".dmg", ".rar", ".xar", ".zip"], "文本": [".txt", ".in", ".out", ".json","xml",".log"], "程序脚本": [".py", ".html5", ".html", ".htm", ".xhtml", ".c", ".cpp", ".java", ".css",".sql"], "可执行程序": [".exe",".bat",".lnk"], "字体文件": [".ttf", ".OTF", ".WOFF", ".EOT"] } def JudgeFile(self, pathname): for name, type in self.filetype.items(): if pathname in type: return name return "无法判断类型文件"class DeskTopOrg(object): def __init__(self): self.filetype = FileType() def Organization(self): filepath = input("请输入需要整理的文件夹路径: ") paths = glob.glob(filepath + "/*.*") print('paths-->',paths) for path in paths: try: if not os.path.isdir(path): file = os.path.splitext(path) filename,type = file print('type-->',type) print("filename-->",filename) print('path-->',path) dir_path = os.path.dirname(path) print('dir_path-->',dir_path) savePath = dir_path + '/{}'.format(self.filetype.JudgeFile(type)) print('savePath-->',savePath) if not os.path.exists(savePath): os.mkdir(savePath) shutil.move(path, savePath) else: shutil.move(path, savePath) except FileNotFoundError: pass print("程序执行结束!")if __name__ == '__main__': try: while True: desktopOrg = DeskTopOrg() desktopOrg.Organization() print("---->你的文件已经整理完成。") a = input('---->请按回车键退出:') if a == '': break except BaseException: print("ERROE:路径错误或有重复的文档")
这样就可以自由的整理你想要整理的路径了。
到此,关于"Python如何实现批量自动整理文件"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
文件
日志
代码
文件夹
路径
移动
目录
学习
模块
程序
输入
名称
工具
文档
更多
类型
部分
帮助
选择
不同
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
我的世界服务器新手礼包复制指令
服务器保护软件
网络技术上机题库百度云
郑州计算机网络技术招聘
软件开发方法分几大类
公司办公室网络安全制度
网络安全涉及的方面有哪些
北站铁路服务器
北京立体化软件开发模型
编码网络技术
网络安全保密工作必要性
erp软件开发项目计划书
服务器客户端流程图
西安超特网络技术有限公司
土地确权颁证数据库移交自然资源
服务器厂商的服务
软件开发政府行业
python项目部署云服务器
linux上位机软件开发
服务器启动搜索优先级
兰瑞网络技术有限公司
连云港软件开发费用明细
sql数据库c连接不上
数据库设计用到的技术
中国百姓网络安全
莱阳定制软件开发企业
网络安全防骗教程
软件开发 术语
公司数据库分离
阿里云哪一款服务器可以做游戏