递归找到多级文件夹中所有pdf文件的py程序

因个人需要,写了一个可以递归找到多级文件夹中所有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)



猜你喜欢

转载自www.cnblogs.com/gfanqi/p/12060501.html