python遍历当前路径下的所有文件

1、os.walk()

import os我就不写了,代码和执行的效果如下:

path='/${absolute_path}/缺陷预测/tera-promise-dataset'
for root,dirs,files in os.walk(path):
    print("root:",root)
    print()
    print("dirs:",dirs)
    print()
    print("files:",files)
    print()

结果:

root: /${
    
    absolute_path}/缺陷预测/tera-promise-dataset

dirs: ['prop', 'lucene', 'ivy', 'camel', 'xerces', 'velocity', 'xalan', 'poi', 'forrest', 'log4j', 'jedit', 'synapse']

files: ['arc.csv', 'szybkafucha.csv', 'skarbonka.csv', 'ant-1.7.csv', 'kalkulator.csv', '.DS_Store', 'systemdata.csv', 'serapion.csv', 'nieruchomosci.csv', 'workflow.csv', 'tomcat.csv', 'redaktor.csv', 'pdftranslator.csv', 'e-learning.csv', 'zuzel.csv', 'wspomaganiepi.csv', 'README.txt', 'sklebagd.csv', 'berek.csv', 'termoproject.csv', 'intercafe.csv', 'ckjm.csv']

root: /${
    
    absolute_path}/缺陷预测/tera-promise-dataset/prop

dirs: []

files: ['prop-4.csv', 'prop-5.csv', 'prop-6.csv', 'prop-3.csv', 'prop-1.csv']

#后面的都是重复
……

比较懒,直接用tera-PROMISE数据集展示结果了。os.walk()是一层一层遍历过去的,如果是需要对单个文件操作,需要把root和文件名组合在一起,代码如下:

#打印当前路径下所有文件的绝对路径
for root,dirs,files in os.walk(path):
    # print("root:",root)
    # print()
    # print("dirs:",dirs)
    # print()
    # print("files:",files)
    # print()
    for f in files:
        file_path=os.path.join(root,f)
        print(file_path)

结果可以自己运行看下。

2、os.listdir()

在使用这个函数的时候,更适合写成递归函数

def listdir(path,data):
    for f in os.listdir(path):
        file_path=os.path.join(path,f)
        #判断是不是文件使用os.path.file()
        if os.path.isdir(file_path):
            listdir(file_path,data)
        else:
            if os.path.splitext(f)[1]=='.csv':
                print(file_path)

这段代码也能达到上面的效果。

3、参考资料

Python获取路径下所有文件名
python 判断文件还是文件夹

猜你喜欢

转载自blog.csdn.net/u012949658/article/details/110006711