前言
文件整理常常会浪费很多时间。但如果让机器来做这样复杂的事情,不到 10 秒钟就能完成 1 个小时工作。
整理方式
进行文件整理最直接的方式就是通过文件类型进行整理。所有的 txt 文件放在一个叫做 txt 文件的文件夹,exe 文件放在另一个叫做 exe 文件的文件夹里。
操作
导入两个模块,shutil 和 os。os 模块可以帮助我们读取文件夹的文件和创建分类文件的文件夹。而 shutil 模块是帮助我们移动文件到文件夹里。
import shutil,os
我们需要一个整理目标和需要整理的文件类型,用 input () 来给用户输入。
clean = input('请输入要整理的目录路径(请用双反斜杠):')
file_name = input("需要分类的文件(输入文件扩展名,用英文符号‘,’隔开可以写多个文件扩展名):").split(',')
为了获取多个分类文件,我们要用 split 来处理 ','。这样就可以让用户输入多个文件类型了。
如果有整理剩余的文件,我们可以创建出一个叫做其它文件的文件夹,所以我们还要询问用户是否要创建一个其它文件的文件夹。
choose = input('请问是否要创建一个整理剩余文件的文件夹?(yes or no)')
之后,我们就列出来目标文件夹的目录,用 files = os.listdir (clean),之后再用 for 循环遍历出所有需要分类的文件。
files = os.listdir(clean)
for i in file_name:
os.mkdir(clean + i + '文件')
如果刚刚询问用户是否要创建出一个整理剩余文件夹时用户输入了 yes,那么就也创建一个叫做其它文件的文件夹。
if choose == 'yes':
os.mkdir(clean + '其它文件')
目标有了,创建出了一个文件夹,就差最后一步,把分类文件移到文件夹,这时候 shutil 模块就派上了用场,move 这个函数需要两个参数,一个是要移动的文件的路径,一个是移动到哪里的路径。用 for 循环遍历出 files 的所有文件,再用 shutil 模块的 move 函数进行移动文件。
for i in files:
for file in file_name:
if os.path.isdir(clean + i):
break
if i.endswith(file):
shutil.move(clean + i,clean + file + '文件')
break
if file == file_name[0]:
if j1:
shutil.move(clean + i,clean + '其它文件')
注意:clean 变量之所以会在这里出现是因为需要和 i 拼接出一个完整的文件夹路径,没有完整的路径,就会报出一个 filenotfounderror(找不到指定的目录)。
最后,这个简单的文件整理操作就完成了,之后也可以添加一些其他的东西,比如处理异常,永远执行......
© 著作权归作者所有
发表评论