Python中文件遍历有两种方法:使用os模块和使用pathlib模块。下面我会对这两种方法进行详细说明,并且提供代码示例。
一、使用os模块进行文件遍历
os模块是Python自带的一个常用模块,其中包含了很多与文件和目录相关的功能,可以用它来实现文件遍历。
1. os.walk方法
os.walk方法可以列出指定目录下(包括子目录)的所有文件和文件夹,具体用法如下:
import os
# 遍历当前目录下的所有文件和文件夹
for root, dirs, files in os.walk('.'):
print(root) # 当前目录路径
print(dirs) # 当前路径下所有子目录
print(files) # 当前路径下所有非目录子文件
上述代码中,“.”代表当前目录,os.walk会自动遍历这个目录下的所有子目录,files中存放了当前路径下的所有非目录子文件列表,dirs中存放了所有的子目录列表。可以根据需要对这些列表进行处理。
2. os.listdir方法
os.listdir方法可以列出指定目录下的所有文件和文件夹,包括子文件夹中的内容,但是不会递归遍历子目录。具体用法如下:
import os
# 遍历指定目录下的所有文件和文件夹
for file_name in os.listdir('.'):
file_path = os.path.join('.', file_name)
if os.path.isdir(file_path):
print(file_path, '是一个文件夹')
else:
print(file_path, '是一个文件')
上述代码中,os.listdir('.')可以列出当前目录下的所有文件和文件夹,然后通过os.path.isdir方法判断是文件夹还是文件。
二、使用pathlib模块进行文件遍历
pathlib是Python 3.4引入的一个新模块,用来处理文件操作,也可以用它来实现文件遍历。
1. Path.glob方法
Path.glob方法可以列出指定目录下的所有符合条件的文件和文件夹。
from pathlib import Path
# 遍历指定目录下的所有文件和文件夹
for p in Path('.').glob('**/*'):
if p.is_dir():
print(p, '是一个文件夹')
else:
print(p, '是一个文件')
上述代码中,Path类的构造函数可以接收目录路径作为参数,然后使用.glob方法来过滤出文件和文件夹。'/'表示在子目录中递归搜索,''表示匹配所有文件和文件夹。
2. Path.rglob方法
Path.rglob方法和Path.glob方法类似,都是用来遍历符合条件的文件和文件夹,但rglob方法会递归遍历子目录,具体用法如下:
from pathlib import Path
# 遍历指定目录及其子目录下的所有文件和文件夹
for p in Path('.').rglob('*'):
if p.is_dir():
print(p, '是一个文件夹')
else:
print(p, '是一个文件')
上述代码中,Path类的构造函数可以接收目录路径作为参数,然后使用.rglob方法进行递归遍历所有文件和文件夹,'*'表示匹配任意字符的文件和文件夹。
至此,两种文件遍历方法的完整攻略已经介绍完毕。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python中文件遍历的两种方法 - Python技术站