Python封装的获取文件目录的函数

我喜欢在解决问题的同时,将解决方法封装并适应多种相似情况,以达到一劳永逸的效果。这样不仅可以得到一个小工具,而且后期遇到未考虑到的情况时,翻起原来整理的内容也理解的快。下面是获取指定文件夹中文件的函数,也是在网上学习时东拼西凑的结果。注意,其中文件名如1.txt,文件路径如D:\文件夹\1.txt;direct为第一层子级

建议自己码一遍,不想码?拿走别客气

import os

#filePath 输入文件夹全路径
#mode
# 1递归获取所有文件名;
# 2递归获取所有文件路径;
# 3获取direct文件名;
# 4获取direct文件路径;
# 5获取direct文件名和direct子文件夹名;
# 6获取direct文件路径和direct子文件夹路径
def getFile(filePath, mode, type):
    listResult=[]

    if mode == 1:
        for parent, dirNames, fileNames in os.walk(rootdir):
            for fileName in fileNames:
                if type !="" and not fileName.endswith(type):
                    continue
                listResult.append(fileName)
    elif mode == 2:
        for parent, dirNames, fileNames in os.walk(rootdir):
            for fileName in fileNames:
                if type !="" and not fileName.endswith(type):
                    continue
                listResult.append(os.path.join(parent, fileName))
    elif mode == 3:
        listFileTitle = os.listdir(filePath)
        for each in listFileTitle:
            eachFilePath = os.path.join(filePath, each)
            if os.path.isfile(eachFilePath):
                if(type !="" and not eachFilePath.endswith(type)):
                    continue
                listResult.append(each)
    elif mode == 4:
        listFileTitle = os.listdir(filePath)
        for each in listFileTitle:
            eachFilePath = os.path.join(filePath, each)
            if os.path.isfile(eachFilePath):
                if type !="" and not eachFilePath.endswith(type):
                    continue
                listResult.append(eachFilePath)
    elif mode == 5:
        listTemp=os.listdir(filePath)
        for each in listTemp:
            eachFilePath = os.path.join(filePath, each)
            if (os.path.isfile(eachFilePath) and type !="" and not eachFilePath.endswith(type)):
                continue #是文件#指定了后缀#不是指定的后缀
            listResult.append(each)

    elif mode == 6:
        listFileTitle = os.listdir(filePath)
        for eachTitle in listFileTitle:
            eachFilePath=os.path.join(filePath, eachTitle)
            if (os.path.isfile(eachFilePath) and type !="" and not eachFilePath.endswith(type)):
                continue #是文件#指定了后缀#不是指定的后缀
            listResult.append(eachFilePath)

    return listResult


rootdir = "D:\\Test"
outPath = "D:\\pyTest.txt"

fileWriter = open(outPath, 'w')
for each in range(1,7,1):
    fileWriter.write('\n')
    fileWriter.write("mode==")
    fileWriter.write(str(each))
    fileWriter.write('\n')

    listFile=getFile(rootdir, each, '.PPT')
    for each in listFile:
        fileWriter.write(each+'\n')
fileWriter.close()



猜你喜欢

转载自blog.csdn.net/originalcandy/article/details/85055918