因个人需要,写了一个可以递归找到多级文件夹中所有pdf的小程序,发布出来供有需要的人参考或使用。
import os import re import shutil from os.path import isdir listnum = 0 #计数器 def get_items(path, direct_file, level=0,subindex=‘‘): ‘‘‘ :param path: 文件路径,输入要处理的文件夹 :param direct_file: 用于把找到的文件存起来的路径 :param level: 递归层级 :param subindex: 序号 :return: 该文件自己的编号 ‘‘‘ global listnum dirs = os.listdir(path) #获取所有的子文件夹和子文件夹 subpath = [os.path.join(path, dir) for dir in dirs] #得到所有的地址 for index,each_item in enumerate(subpath): if isdir(each_item): get_items(each_item,direct_file=direct_file, level=level+1,subindex = subindex+str(index)+‘、‘) else: basename = os.path.basename(each_item)#文件的名字 if re.match(r‘^\w+(\.pdf)$‘,basename) is not None: # 匹配以 .pdf结尾的所有文件 newname = str(subindex) +‘_‘+basename # 重命名可以重写 direct_file_name = os.path.join(direct_file,newname) shutil.copyfile(each_item,direct_file_name) listnum+=1 if __name__ == ‘__main__‘: ‘‘‘ ‘‘‘ path = os.getcwd() direct_file = ‘./pdfs/‘ if not os.path.exists(direct_file): os.mkdir(direct_file) get_items(path, direct_file, level=1)
原文:https://www.cnblogs.com/gfanqi/p/12060501.html