每次都是操作完成就没有养成总结的习惯,很多年了,每次遇到需要的时候,还得想想之前怎么做的啊!之前遇到一个问题是,在一个文件中有各种各样格式的文件,但是我只想把mp3的文件筛选处理,放进手机听听,如果就几个文件据复制粘贴就好了,如果几十上百呢?而且都不在一个文件夹,就需要一个脚本来自动处理了。
废话不多说了,直接上代码:
import os import shutil targetPath = r"F:\01\MP3" sourcepath = r"F:\01 课程\xxxxx" for root, dirs, files in os.walk(sourcepath, topdown=True): for name in files: filename = os.path.join(root, name) # 所有文件包括子文件的文件 # print(filename) # print(filename[-3:]) if(filename.endswith("mp3")): shutil.copy(filename, os.path.join(targetPath, name)) print(filename) print(os.path.join(targetPath,name))
print() 只是用于显示源文件文件名,文件全路劲名称,复制到目标文件夹的全文件名。
我的需求是文件后缀mp3,所以只要是mp3的文件都会被复制到F:\01\MP3中
每个课时文件夹都包含mp3文件,但是目标文件MP3 必须是存在的,所以可以增加2行代码判断是否存在,不存在则创建
if not os.path.exists(targetPath): os.makedirs(targetPath)