700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 用Python脚本一键自动整理文件 轻松办公

用Python脚本一键自动整理文件 轻松办公

时间:2021-09-27 13:43:36

相关推荐

用Python脚本一键自动整理文件 轻松办公

嗨嗨,大家下午好~ 我是小圆

因为自己对于电脑上的文件不怎么爱整理,经常把下载好的东西就随意的放在桌面上或者“下载”文件夹中,就使用过后再也没去管它了。久而久之,文件夹就变得乱七八糟,再整理的时候非常痛苦,巴不得有一个自动化的工具帮我归类文档。

不知道你们有没有跟我一样的,没有的话更好,如果你也跟我一样,那这篇文章就对你很有帮助了!

是用python做的一个根据后缀名整理文件的工具,先来看看效果:

整理前:

自动整理后:

效果非常好,舒服多了

如果想要直接下载源代码试试看,都可以来这里哦 /?_wv=1027&k=D6zXd965 这里还有学习资料与免费课程领取

1.准备

开始之前,你要确保Python和pip已经成功安装在电脑上,如果没有的,可以私信我哦

你只需要修改源代码主程序中调用 auto_organize函数的参数即可完成对对应文件夹的整理,比如我想整理C:\Users\83493\Downloads 文件夹:

if __name__ == "__main__":auto_organize(r"C:\Users\83493\Downloads")

如上所示,修改代码第61行的文件夹地址即可。修改完成后运行该脚本:

python auto_files.py

就能瞬间完成对指定文件夹的整理,极其方便。

2.原理

这份代码的原理很简单,为了整理这些文件,我们要遍历当前指定的文件夹:如果是文件夹则跳过,如果是文件则检测后缀,分类到对应的文件夹中。文件夹名字及其对应的文件后缀如下:

DIRECTORIES = {"图片": [".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"],}

接下来是自动整理的部分代码,先遍历指定的文件夹,识别后缀并分类到对应的文件夹中。

for entry in os.scandir(dirval):if entry.is_dir():# 如果是文件夹则跳过continuefile_path = Path(dirval + "\\" + entry.name)file_format = file_path.suffix.lower()# 避免后缀大小写判断问题,全转为小写if file_format in FILE_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 + "\\" +"其他文件")except:passfor dir in os.scandir(dirval):try:if dir.is_dir():# 删除空文件夹os.rmdir(dir)else:temp = str(Path(dir)).split('\\')# 分割文件路径path = '\\'.join(temp[:-1])print(path + '\\其他文件\\' + str(temp[-1]))os.rename(str(Path(dir)), path + '\\其他文件\\' + str(temp[-1]))except:pass

3.自定义整理

如果你并不想按照设定好的文件整理,希望能自定义地将某些特定后缀的文件放到另一个文件夹,比如 .py 文件统一收纳到“Python脚本”文件夹中,你可以这么改 DIRECTORIES 变量:

DIRECTORIES = {# ......"编程": [".py",".html5", ".html", ".htm", ".xhtml",".c",".cpp",".java",".css"],# ......}

改动后:

DIRECTORIES = {# ......"编程": [".html5", ".html", ".htm", ".xhtml",".c",".cpp",".java",".css"],"Python脚本": [".py"],# ......}

你可以按照这个方法,自定义收纳那些你需要整理收纳的文件格式。

如果你只想对 DIRECTORIES 变量里那些后缀的文件进行整理,不属于这些后缀的文件则不进行整理,不需要放到“其他文件”目录下,此时要怎么做?

很简单,你只需要删除以下部分代码就可以完成这个功能:

try:os.mkdir(dirval + "\\" +"其他文件")except:passfor dir in os.scandir(dirval):try:if dir.is_dir():# 删除空文件夹os.rmdir(dir)else:temp = str(Path(dir)).split('\\')# 分割文件路径path = '\\'.join(temp[:-1])print(path + '\\其他文件\\' + str(temp[-1]))os.rename(str(Path(dir)), path + '\\其他文件\\' + str(temp[-1]))except:pass# ......

看看怎么样,是不是很方便啊

好啦,今天的分享到这里就结束了 ~

对文章有问题的,或者有其他关于python的问题,可以在评论区留言或者私信我哦

觉得我分享的文章不错的话,可以关注一下我,或者给文章点赞(/≧▽≦)/

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。