有时候需要把一个文件夹下的多个文件夹里面特定文件夹的文件汇总到一个文件夹,该方法可解决,编程新手,欢迎大佬提供建议,简化代码,感觉多次遍历能简化。
该方法是本人需要从笔记文件里面提取md文件而写的,适应面不广,第一次发博,欢迎大家批评指正。
import shutil
from os.path import join
from os import listdir
# path 就是我们要查找的文件的上两级目录
# new_dirs 就是我们最后要把文件保存的目录(必须先创建)
# target_dirs 就是文件所在文件夹的名称
path = input('输入绝对路径:(需移动文件的上!两!级目录)')
new_dirs = input('输入要保存至的新绝对路径:')
target_dirs = input('文件存储所在文件夹名:')
file_type = input('文件类型:')
def fast_copy(path,new_dirs,target_dirs,file_type):
# 把目录下的文件名变为列表
tool_dirs = listdir(path)
# 再以小见大,遍历,从一个文件夹去思考操作
for first_dirs in tool_dirs:
print(first_dirs)
# 定义进一步的路径
path_deeper = path + '\\' +first_dirs
# 将进一步目录下的文件名变为列表,然后遍历查找最终的目的文件夹
deeper_dirs = listdir(path_deeper)
for ojbk_dirs in deeper_dirs:
# 找到最终文件夹,并且定义最终路径
if ojbk_dirs == target_dirs:
finally_dir = path_deeper + '\\' + target_dirs
print(finally_dir)
for file in listdir(finally_dir):
if file.endswith(file_type):
shutil.copy(finally_dir + '\\' + file, new_dirs + '\\' + file)
else:
continue
if __name__ == '__main__':
fast_copy(path,new_dirs,target_dirs,file_type)