利用 Python 一键整理电脑桌面、文件夹,瞬间清爽了
关注+星标,每天学习Python新技能
大家好,我是小码哥。今天分享一个小技能:
随时间流逝,文件夹下的文件可能杂乱无章,如下图:
如果我们用手动移动处理的方式,这将是非常耗时和无论的事情。
为了提升效率,我们利用Python可以轻松整理文件夹,以按照文件类型存放在指定文件夹下,比如把所有文档 ‘docx’存放在文件夹 “文档”下,效果如下:
01
定义一个函数处理各种文件
01 import os
02 import shutil
03
04 def moveFile(srcfile, fileType, srcPath, destPath):
05 '''
06 移动文件srcfile到指定目录 destPath
07 srcPath是原来的文件夹
08 fileType是文件类型
09 '''
10 # 判断扩展名是否是WORD
11 if os.path.splitext(srcfile)[1] == fileType:
12 print(f'将要移动 {i}')
13 # 判断目的文件夹是否存在
14 if os.path.exists(destPath):
15 # 拼接文件 srcfile 的绝对路径
16 fileName = os.path.join(srcPath, srcfile)
17 shutil.move(fileName, destPath)
18 else:
19 os.makedirs(destPath) # 不存在则创建
20 # 创建完文件夹之后在移动
21 fileName = os.path.join(srcPath,i)
22 shutil.move(fileName, destPath)
第1行代码是导入os模块
第2行代码是导入高级文件处理模块 shutil。它与模块os功能互补,主要功能包含复制、移动、重命名和删除文件以目录。这里主要使用shutil模块的move(src,dst)方法。它的功能是将文件src移动到dst下。如果dst是一个目录,将文件移动到目录之下;如果dst是一个文件名称,则将文件移动到目标目录下,并且重命名为dst。在本例中,我们的dst是文件夹,表示把文件移动到dst之下。
第4-22行代码是定义函数moveFile()。它的作用是真正实现整理文件夹的功能,把不同类型的文件移动到指定的文件夹。
第4行代码是用关键字def定义函数moveFile(srcfile, fileType, srcPath, destPath)。它包含4个参数,含义如下:
参数srcfile是指需要移动的文件名字,比如 ‘古诗词.docx’等
参数fileType是指文件srcfile的类型,比如 ‘docx’等
参数srcPath是指存放文件srcfile的原来目录
参数destPath是指将要移动到的目标目录。
第11行代码是4.2.2节中的内容。它的目的是判断文件srcfile的类型是否是 fileType。
第14-22行代码是if-else结构。它是用os.path.exists(destPath)方法判断目标目录destPath是否在存在。如果不存在,我们在第19行代码用os方法的makedirs(destPath)创建。
第16行代码是用os.path.join(srcPath, srcfile)方法拼接文件的路径。也就是查找文件srcfile原来的路径,比如文件 ‘古诗词.docx’的路径是 ‘F:\零基础轻松学 Python 办公自动化\python_do_file\第4章\data\古诗词.docx’,并用fileName表示拼接后的路径。
第17行代码是用shutil.move(fileName, destPath)方法把拼接后的文件路径fileName移动到目标目录destPath下。
第21和22行代码同16和17行代码。
02
定义移动文件的路径
25 # 目录路径。绝对路径或者相对路径均可
26 srcPath = r'F:\零基础轻松学 Python 办公自动化\python_do_file\第4章\data'
27
28 # 不同类型的文件路径
29 DirPPT=r"F:\零基础轻松学 Python 办公自动化\python_do_file\第4章\generated_data\演讲文稿"
30 DirWord=r'F:\零基础轻松学 Python 办公自动化\python_do_file\第4章\generated_data\文档'
31 DirExcel=r'F:\零基础轻松学 Python 办公自动化\python_do_file\第4章\generated_data\销售数据'
32 DirPic=r'F:\零基础轻松学 Python 办公自动化\python_do_file\第4章\generated_data\图片'
33 DirText=r'F:\零基础轻松学 Python 办公自动化\python_do_file\第4章\generated_data\文本文件'
34
35 # 查看所有的文件与文件夹
36 allFile = os.listdir(srcPath)
第26行代码是用变量srcPath表示文件的绝对路径。也就是我们将要整理的文件夹。读者可以任意修改路径名字。
第29-33行代码是为不同类型的文件指定不同的文件夹,比如为文档类型的文件指定文件夹 ‘F:\零基础轻松学 Python 办公自动化\python_do_file\第4章\generated_data\文档’,并用变量DirWord表示。这里的路径都是绝对路径,读者可以任意修改。
第36行代码是查看目录srcPath下的所有文件与文件夹,并用变量allFile表示。
03
利用 For 循环实现移动文件
38 # 移动指定类型文件到指定文件夹
39 for i in allFile:
40 # 移动所有 PPT文件到 DirPPT
41 moveFile(i, '.pptx', srcPath, DirPPT)
42 # 移动所有 word文件 DirWord
43 moveFile(i, '.docx', srcPath, DirWord)
44 # 移动所有 excel 文件 DirExcel
45 moveFile(i, '.xlsx', srcPath, DirExcel)
46 # 移动所有 PNG 文件 PIC
47 moveFile(i, '.png', srcPath, DirText)
48 # 移动所有 text 文件 PIC
49 moveFile(i, '.text', srcPath, DirText)
第39-49行代码是用for循环处理目录srcPath下所有文件,并用变量i表示每一个文件。
第41行代码是调用移动文件的函数moveFile(i, '.pptx', srcPath, DirPPT)。通过第4行代码,它需要4个形式参数。因此,我们调用的时候也用了4个参数,并且称为实际参数,分别是需要移动的文件i、文件类型 ‘.pptx’、需要整理的文件夹srcPath以及目的文件夹DirPPT。这一行代码是把文件i移动到ppt目录下。
同理,第42-49行代码是把不同类型的文件移动到不同的文件夹。读者可以修改这个参数的调用参数以移动更多类型的文件到指定文件夹。
04
运行上述代码,输出结果如下:
将要移动 11.5-案例.docx
将要移动 12.5.2-转化表格为一个excel文件.xlsx
将要移动 14.4.3-添加标题.pptx
将要移动 14.4.4-添加文本框.pptx
将要移动 14.4.4.2-插入段落.pptx
将要移动 14.4.5-添加图片.pptx
将要移动 14.4.5_多个幻灯片添加图片.pptx
将要移动 3.5.1-统计文字出现的次数.text
将要移动 3.5.2-大小写转化.text
将要移动 古诗词.docx
将要移动 完美解决.png
将要移动 实战圈.png
将要移动 租客信息汇总.xlsx
将要移动 租房合同模板.docx
查看文件夹 ‘generated_data’,同类型的文件被整理在同一个文件夹下,比如文档文件夹下是‘docx’类型文件,如上图所示。
是不是很简单?赶快试一下吧!
推荐小码哥新书!
小码哥新手《Python + Excel/Word/PPT一本通》正式上市了!书中详细介绍了零基础用Python实现办公自动化的各方面知识,提高职场办公效率,附赠PPT/源代码/重点教学视频讲解和作者VIP一对一指导。
内容介绍:《Python + Excel/Word/PPT 一本通》内容介绍
扫码购买
▼点击阅读原文,了解本书详情~