Python如何实现批量自动整理文件
发表于:2025-01-24 作者:千家信息网编辑
千家信息网最后更新 2025年01月24日,这篇文章主要介绍"Python如何实现批量自动整理文件",在日常操作中,相信很多人在Python如何实现批量自动整理文件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"P
千家信息网最后更新 2025年01月24日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安全错误
数据库的锁怎样保障安全
切换国际服务器
永恒之塔怀旧服选择哪个服务器
云服务器 传统服务器
标签网络技术
arm服务器安装python
怎么画防网络安全绘画
上海品划网络技术有限公司
数据库逻辑结构详解
校园网网络安全研究目的
上海r740服务器经销商
网易我的世界租凭服务器介绍
软件开发公司财报没有存货
红客联盟网络安全应急响应中心
普陀区海航数据库服务电话多少
嵌入网络安全待遇
什么是数据库安全链接
软件开发模型描述了
网络安全法使用个人信息
网络安全上升战略
容城天气预报软件开发
网络安全草案是什么
什么叫软件开发源码交付
湛江在线学习软件开发
嵌入式软件开发区网红饮品
一台电脑怎么弄两个服务器
无锡数字化智慧医院软件开发
普陀区海航数据库服务电话多少
语音聊天软件开发让您放心省心
温州手机软件开发招聘
电信网络安全主题活动