python 遍历文件夹
在实际的工作中,我们经常需要对文件夹中的文件进行操作,如复制、移动、重命名或删除等。而要对文件夹中的文件进行操作,首先需要遍历文件夹,获取文件夹中的所有文件。本文将介绍使用python遍历文件夹的方法。
os.walk()方法
在python中,可以使用os模块的walk()方法遍历文件夹。该方法返回三个参数,分别是路径、该路径下的文件夹名和该路径下的文件名。可以使用for循环遍历这三个参数,获取文件夹中的所有文件。
示例代码:
import os
# 遍历文件夹
for dirpath, dirnames, filenames in os.walk('D:/test'):
# 输出当前遍历的路径
print('路径:', dirpath)
# 输出当前路径下的文件夹名
print('文件夹:', dirnames)
# 输出当前路径下的文件名
print('文件名:', filenames)
代码输出:
路径: D:/test
文件夹: ['dir1', 'dir2']
文件名: ['file1.txt', 'file2.txt']
路径: D:/test\dir1
文件夹: ['dir3']
文件名: ['file3.txt', 'file4.txt']
路径: D:/test\dir1\dir3
文件夹: []
文件名: ['file6.txt']
路径: D:/test\dir2
文件夹: []
文件名: ['file5.txt']
从结果中可以看出,os.walk()方法遍历文件夹时,会先输出该路径下的所有文件夹,再输出该路径下的所有文件。
os.listdir()方法
除了使用os.walk()方法遍历文件夹,还可以使用os.listdir()方法获取文件夹下的文件列表。该方法返回文件夹下所有文件和文件夹的名称,可以使用for循环进行遍历。
示例代码:
import os
# 获取文件夹下的文件列表
dirList = os.listdir('D:/test')
# 输出文件夹下的文件列表
for file in dirList:
print(file)
代码输出:
dir1
dir2
file1.txt
file2.txt
使用os.path模块获取文件路径
当获取到文件夹下的文件名后,需要考虑如何获取文件的路径。可以使用os.path模块来获取文件的路径,可以使用os.path.join()方法将文件夹路径和文件名拼接成完整的文件路径。
示例代码:
import os
# 获取文件夹下的文件列表
dirList = os.listdir('D:/test')
# 遍历文件列表
for file in dirList:
# 获取文件路径
filePath = os.path.join('D:/test', file)
# 输出文件路径
print(filePath)
代码输出:
D:/test\dir1
D:/test\dir2
D:/test\file1.txt
D:/test\file2.txt
过滤文件列表
有时候,我们需要获取指定后缀名的文件列表,那么可以使用列表推导式来过滤文件列表。
示例代码:
import os
# 获取文件夹下的所有文件
allFiles = os.listdir('D:/test')
# 过滤文件列表,获取txt文件
txtFiles = [file for file in allFiles if file.endswith('.txt')]
# 遍历文件列表
for file in txtFiles:
# 获取文件路径
filePath = os.path.join('D:/test', file)
# 输出文件路径
print(filePath)
代码输出:
D:/test\file1.txt
D:/test\file2.txt
结论
本文介绍了使用python遍历文件夹的方法,包括os.walk()方法、os.listdir()方法、使用os.path模块获取文件路径以及过滤文件列表等内容。使用这些方法,可以方便地对文件夹中的文件进行操作。