python自动化脚本办公-文件整理

今天讲解文件整理脚本的实现过程。这是一个很有用的技能,可以帮助你管理你的电脑上的各种文件。需求如下:
需求内容:给定一个打算整理的文件夹目录,这个脚本可以将该目录下的所有文件都揪出来,并且根据后缀名归类到不同的文件夹里。python能力:使用python的内置模块os和shutil来操作文件和目录,使用glob模块来匹配文件名,使用with语句来打开和关闭文件。实现步骤: 导入需要的模块定义要整理的目录和要创建的子目录遍历目录下的所有文件,获取文件名和后缀名根据后缀名判断文件属于哪个子目录,如果不存在则创建使用shutil模块的move函数将文件移动到对应的子目录打印完成信息教程面对的是小白级别的读者,所以我会尽量用简单明了的语言来解释每一行代码的作用,并且给出完整的代码示例。我希望你能跟着我一起学习,并且在自己的电脑上运行和测试这个脚本。
导入python的内置模块首先,我们需要导入一些python的内置模块,它们可以帮助我们操作文件和目录。os模块提供了一些基本的文件系统功能,比如获取文件路径,创建和删除目录等。shutil模块提供了一些高级的文件操作功能,比如复制和移动文件等。glob模块可以让我们用通配符来匹配文件名,比如*.txt可以匹配所有后缀名为txt的文件。with语句可以让我们方便地打开和关闭文件,不用担心忘记关闭或者出现异常。下面是导入模块的代码:
# 导入需要的模块import osimport shutilimport glob定义要整理的目录和要创建的子目录接下来,我们需要定义要整理的目录和要创建的子目录。我们假设要整理的目录是d:test,里面有各种类型的文件,比如文本文件,图片文件,音频文件等。我们想要把这些文件按照后缀名归类到不同的子目录里,比如txt文件放到d:testtxt,jpg文件放到d:testjpg,mp3文件放到d:testmp3等。我们可以用一个字典来存储这些子目录的信息,键是后缀名,值是对应的子目录路径。下面是定义目录的代码:
# 定义要整理的目录和要创建的子目录source_dir = d:test # 要整理的目录sub_dirs = { # 子目录信息 .txt: d:testtxt, .jpg: d:testjpg, .mp3: d:testmp3}遍历目录下的所有文件,获取文件名和后缀名然后,我们需要遍历要整理的目录下的所有文件,获取文件名和后缀名。我们可以用os模块的listdir函数来获取目录下的所有文件和子目录,然后用os模块的path.splitext函数来分割文件名和后缀名。我们还需要判断是否是文件,因为listdir函数会返回子目录,我们不需要处理它们。我们可以用os模块的path.isfile函数来判断是否是文件。下面是遍历目录的代码:
# 遍历目录下的所有文件,获取文件名和后缀名for item in os.listdir(source_dir): # 遍历目录 if os.path.isfile(os.path.join(source_dir, item)): # 判断是否是文件 file_name, file_ext = os.path.splitext(item) # 分割文件名和后缀名 print(file_name, file_ext) # 打印文件名和后缀名根据后缀名判断文件属于哪个子目录接着,我们需要根据后缀名判断文件属于哪个子目录,如果不存在则创建。我们可以用字典的get方法来根据键获取值,如果键不存在则返回none。我们可以用os模块的path.exists函数来判断子目录是否存在,如果不存在则用os模块的makedirs函数来创建。下面是判断和创建子目录的代码:
# 根据后缀名判断文件属于哪个子目录,如果不存在则创建 sub_dir = sub_dirs.get(file_ext) # 根据后缀名获取子目录路径 if sub_dir: # 如果子目录路径存在 if not os.path.exists(sub_dir): # 如果子目录不存在 os.makedirs(sub_dir) # 创建子目录 print(fcreated {sub_dir}) # 打印创建信息将文件移动到对应的子目录接下来,我们需要使用shutil模块的move函数将文件移动到对应的子目录。我们需要提供源文件路径和目标文件路径作为参数。我们可以用os模块的path.join函数来拼接路径。下面是移动文件的代码:
# 使用shutil模块的move函数将文件移动到对应的子目录 source_file = os.path.join(source_dir, item) # 源文件路径 target_file = os.path.join(sub_dir, item) # 目标文件路径 shutil.move(source_file, target_file) # 移动文件 print(fmoved {source_file} to {target_file}) # 打印移动信息打印完成信息最后,我们需要打印完成信息,告诉用户整理工作已经完成。下面是打印完成信息的代码:
# 打印完成信息print(done!)这样,我们就完成了一个简单的文件整理脚本。完整的代码如下:
# 导入需要的模块import osimport shutilimport glob# 定义要整理的目录和要创建的子目录source_dir = d: est # 要整理的目录sub_dirs = { # 子目录信息 .txt: d: est xt, .jpg: d: estjpg, .mp3: d: estmp3}# 遍历目录下的所有文件,获取文件名和后缀名for item in os.listdir(source_dir): # 遍历目录 if os.path.isfile(os.path.join(source_dir, item)): # 判断是否是文件 file_name, file_ext = os.path.splitext(item) # 分割文件名和后缀名 print(file_name, file_ext) # 打印文件名和后缀名 # 根据后缀名判断文件属于哪个子目录,如果不存在则创建 sub_dir = sub_dirs.get(file_ext) # 根据后缀名获取子目录路径 if sub_dir: # 如果子目录路径存在 if not os.path.exists(sub_dir): # 如果子目录不存在 os.makedirs(sub_dir) # 创建子目录 print(fcreated {sub_dir}) # 打印创建信息 # 使用shutil模块的move函数将文件移动到对应的子目录 source_file = os.path.join(source_dir, item) # 源文件路径 target_file = os.path.join(sub_dir, item) # 目标文件路径 shutil.move(source_file, target_file) # 移动文件 print(fmoved {source_file} to {target_file}) # 打印移动信息# 打印完成信息print(done!)如果你在自己的电脑上运行这个脚本,你会看到类似下面的输出:
test1 .txttest2 .jpgtest3 .mp3created d:testtxtmoved d:testtest1.txt to d:testtxttest1.txtcreated d:testjpgmoved d:testtest2.jpg to d:testjpgtest2.jpgcreated d:testmp3moved d:testtest3.mp3 to d:testmp3test3.mp3done!

实测iPhone 12 mini:玩游戏后电池续航崩了
Banana Pi BPI-W3 RK3588平台驱动调试篇 [ PCIE篇二 ] - PCIE的开发指南
77条STM32知识你不得不知!
STM-M系列(高性能)CANopen通信一体化步进电机快速使用教程
2019年 5G人才数据洞察
python自动化脚本办公-文件整理
骨传导耳机哪个好,骨传导耳机品牌排行榜前十名
卫星+物联网的魔法《北斗室外物联网定位市场调研报告》
基于MEMS技术的CO2传感器 主要检测CO2泄漏
基于C8051F3xx的全数字PFC可控硅调光驱动高亮LED
Silicon Labs电容触摸系列MCU
数百家名企七月齐聚蓉城,助力西部电子“大开发”
创新运营模式,嘉立创获颁“中国工业数字化转型领航企业50强”
LED照明新时代的思考和行动
特斯拉公布2018年第四季度财报,连续两季度盈利
哪种类型的传感器才能实现真正自动驾驶?
雷军目前已在寻找合适的车企作为合作伙伴
浅谈机器人面对的最主要的技术难题
诺基亚E71评测 行业经典
浅谈PCB电子垃圾的来源及主要成分