针对 "python 遍历磁盘目录的三种方法",我会详细讲解一下。
1. 使用os模块的walk方法
在Python中,可以使用os模块的walk方法进行文件遍历,该方法会遍历指定目录及其子目录下的所有文件,并以元组的形式返回各个文件的路径信息。
示例代码:
import os
path = 'C:\Data'
for root, dirs, files in os.walk(path):
for file in files:
print(os.path.join(root, file))
- 首先我们调用了os模块
- 接着指定要遍历的目录路径
- 使用for循环以遍历的方式读取目录下的文件,os.walk()方法返回的是一个三元组,其中root表示目录的路径,dirs表示该目录下的子目录信息,files表示该目录下的所有文件信息。
- 最后我们使用os.path.join()方法将目录路径和文件名拼接为一个完整的文件路径信息,并打印出来。
2. 使用glob模块的glob方法
除了os模块,Python的glob模块也可以用于文件遍历。glob.glob()方法返回指定目录下所有符合条件的文件,并以列表的形式返回。我们可以使用os.path模块的isfile()函数来判断是否为文件。
示例代码:
import glob
import os
path = 'C:\Data\*.csv'
for file_path in glob.glob(path):
if os.path.isfile(file_path):
print(file_path)
- 首先我们调用了glob模块
- 接着使用glob.glob()方法获取所有符合条件的文件列表。该方法接收一个路径表达式,类似于shell中的通配符,例如'C:\Data*.csv'表示获取C:\Data目录下的所有csv文件。
- 接着通过for循环遍历文件列表,使用os.path模块的isfile()函数判断文件是否真正存在,并打印出所有符合条件的文件路径。
3. 使用os模块的listdir方法
Python的os模块提供了一个针对目录的简单内置函数,即os.listdir()方法,这个方法用来获取目录中的所有文件列表,与os.walk()方法类似,但没有递归进入子目录。
示例代码:
import os
path = 'C:\Data'
for file_name in os.listdir(path):
full_path = os.path.join(path, file_name)
if os.path.isfile(full_path):
print(full_path)
- 首先我们也调用了os模块
- 然后指定要遍历的目录路径
- 使用for循环以遍历的方式读取目录下的文件名列表
- 然后使用os.path.join()方法将目录路径和文件名拼接成完整的路径
- 最后使用os.path模块的isfile()函数判断该路径是否为文件,如果是文件,就打印出文件路径信息。
这三种方法各有特色,可以根据实际情况进行选择使用。当需要遍历整个目录时,推荐使用os.walk()
方法,当需要获取指定类型的文件时,推荐使用glob.glob()
方法,当只需要获取指定目录的文件及其子文件时,推荐使用os.listdir()
方法。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python 遍历磁盘目录的三种方法 - Python技术站