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安全错误
数据库的锁怎样保障安全
针对期货的数据库
长沙管理软件开发机构
河南手机软件开发平台
网络安全是本科海还是专科
进销存数据库设计完整
文鼎网络技术服务
广州软件开发哪家靠谱
科蓝软件开发人员级别
软件开发连锁公司有哪些
数据库查询时unity
网络安全题目命名
假期网络安全护苗
怎么进入校园网数据库
网络技术发展的里程碑
办公室电脑采购清单服务器
软件开发五年工资水平
软件开发面试资料
联盟服务器哪个部落好
聊城直销软件开发公司
计算机网络技术甘肃
开放网络技术高峰会
域名服务器新闻
郴州软件开发培训学费
相城区营销网络技术服务费
lol手游服务器爆满
二维码连接数据库
学习数据库都需要学习什么
佛山市公云网络技术有限公司
冈山软件开发有限公司笔试题
龙族幻想服务器等级在哪