一、 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()方法可以轻松实现对指定路径下的所有文件和目录的遍历,进而进行文件批量处理等操作。