您的位置:

Python文件遍历:使用os.listdir()读取文件目录

一、 os.listdir()方法简介

Python提供了os模块来进行文件和目录操作。其中,os.listdir()方法用于返回路径下的所有文件和目录名(除了'.'和'..'及其他隐藏文件外),返回结果为列表类型。

其语法如下:

import os
fileList = os.listdir(path)

其中,path为待遍历的路径,可以是相对路径或绝对路径;fileList返回遍历到的文件列表。

二、 使用os.listdir()方法进行文件遍历

Python文件遍历程序的实现一般包括以下步骤:

1. 获取待遍历的路径。

2. 递归地遍历目录中的所有文件。

3. 判断文件是否是目录,如果是目录,则进入该目录进行递归调用,直到遍历完毕。

4. 如果文件不是目录,则进行相应的处理,比如输出文件名、文件路径、文件大小等。

下面给出一个示例程序,实现从指定路径递归遍历目录,输出所有文件及其路径:

import os

def dirList(path):
    # 获取该目录下所有文件和目录名
    listFile = os.listdir(path)
    for fileName in listFile:
        # 获取文件或目录的路径
        fileAbsPath = os.path.join(path, fileName)
        # 判断该路径是否是目录
        if os.path.isdir(fileAbsPath):
            # 递归调用函数
            dirList(fileAbsPath)
        else:
            # 输出文件路径及名称
            print(fileAbsPath)

# 指定待遍历的文件路径
dirList("/home/myfiles")

该程序首先获取指定路径下的所有文件和目录名,然后逐一进行遍历。如果是目录,则递归调用dirList()函数;如果不是目录,则将该文件的路径和名称输出。程序运行结果如下:

/home/myfiles/helloworld.py
/home/myfiles/test1.txt
/home/myfiles/abc.txt
/home/myfiles/test2.txt

三、细节注意事项

1. 使用os.listdir()方法遍历目录时,可能存在权限问题,无法读取某些文件或目录。此时,可以使用os.access()方法来判断是否具有访问权限。

2. 遍历过程中通常需要排除隐藏文件。方法是使用os.path.join()方法来拼接路径,在路径中加入'.', '..', '.DS_Store'等需要忽略的文件名。

3. 如果遍历目录中有文件或目录名过长,可能会引起路径拼接错误或其他异常。此时需要考虑遍历的深度或修改文件名。

四、总结

Python的os模块提供了多种方法用于文件和目录的操作,包括路径拼接、遍历目录、读写文件等功能。使用os.listdir()方法可以轻松实现对指定路径下的所有文件和目录的遍历,进而进行文件批量处理等操作。