以前我都是把下载的东西放在桌面或者“Downloads”文件夹里,用了之后就不管了。久而久之变得一团糟,重新整理起来很痛苦,真希望有一个自动化的工具帮我整理文档。不知道大家有没有和我一样的惨痛经历,前段时间用Python做了一个按照后缀名整理文件的工具。先来看看效果:自动排列前:自动排列后:效果很好,舒服多了。如需直接下载源码试用,请回复公众号后台自动整理的文件,获取源码下载地址。使用1.在开始之前,你需要确保你的电脑上已经成功安装了Python和pip。如果没有,请访问这篇文章:超详细的Python安装指南进行安装。如果使用Python进行数据分析,可以直接安装Anaconda:Python数据分析挖掘的好帮手——Anaconda,内置Python和pip。只需在源码主程序中修改auto\_organize函数的参数即可。完成相应文件的组织。比如我要整理C:\Users\83493\Downloads文件夹:`if__name__=="__main__":``auto_organize(r"C:\Users\83493\Downloads")`如上所示,只是修改代码第61行的文件夹地址。修改完成后,运行脚本:pythonauto_files.py可以即时整理指定的文件夹,非常方便。2.原理为了整理这些文件,我们需要遍历当前指定的文件夹:如果是文件夹,则跳过,如果是文件,则检查后缀,归类到对应的文件夹中。文件夹名称及其对应的文件后缀如下:`DIRECTORIES={``"Image":[".jpeg",".jpg",".tiff",".gif",".bmp",".png",".bpg","svg",``.heif",".psd"],``"视频":[".avi",".flv",".wmv",".mov",".mp4",".webm",".vob",".mng",``".qt",".mpg",".mpeg",".3gp",".mkv"],``"文档":[.oxps",".epub",".pages",".docx",".doc",".fdf",".ods",``.odt",".pwi",".xsn",".xps",".dotx",".docm",".dox",``".rvg",".rtf",".rtfd",".wpd",".xls",".xlsx",".ppt",``"pptx",".csv",",pdf"],``"压缩文件":[.a],".ar",".cpio",".iso",".tar",".gz",".rz",".7z",``".dmg",".rar",".xar",".zip"],``"视频":[".aac",".aa",".aac",".dvf",".m4a",".m4b",".m4p",".mp3",``".msv","ogg","oga",".raw",".vox",".wav",".wma"],``"文本":[.txt",".in",".out"],``"编程":[".py",".html5",".html",".htm",".xhtml",".c",".cpp",".java",".css"],``"可执行程序":[".exe"],``}`接下来是自动组织的部分代码,f先遍历指定文件夹,识别后缀,进入对应文件夹。`forentryinos.scandir(dirval):``ifentry.is_dir():``#如果是文件夹,跳过``continue``file_path=Path(dirval+"\\"+entry.name)``file_format=file_path.suffix.lower()``#避免判断后缀大小写的问题,全部转为小写``iffile_formatinFILE_FORMATS:``directory_path=Path(dirval+"\\"+FILE_FORMATS[file_format])``directory_path.mkdir(exist_ok=True)``file_path.rename(directory_path.joinpath(entry.name))`还有一些情况是有我们字典里没有的后缀,归类到文件中命名文件夹中的其他文件:`try:``os.mkdir(dirval+"\\"+"otherfiles")``except:``pass``fordirinos.scandir(dirval):``try:``ifdir.is_dir():``#删除空文件夹``os.rmdir(dir)``else:``temp=str(Path(dir)).split('\\')``#Split文件路径``path='\\'.join(temp[:-1])``print(path+'\\otherfiles\\'+str(temp[-1]))``os.rename(str(Path(dir)),path+'\\otherfiles\\'+str(temp[-1]))``except:``pass`最后,将以上部分组织成函数调用。Python实战宝典后台回复公众号文件自动整理获取完整源码下载地址。如果喜欢今天的Python教程,请继续关注Python实战宝典。如果对您有帮助,请在下方点赞/观看。如果您有任何问题,可以在下方留言,我们会耐心为您解答!点击下方阅读原文获取全部代码和链接!Python实用宝典(pythondict.com)不仅仅是一个集合。欢迎关注公众号:Python实战宝典
