返回
Python 遍历文件技巧揭秘:事半功倍!
后端
2023-12-28 06:57:47
Python 作为一门强大的编程语言,在文件处理方面有着广泛的应用。其中,文件遍历是文件处理中一个必不可少的操作。Python 提供了多种文件遍历方法,包括 os.walk、os.listdir 和 next 等。这些方法各有其特点和适用场景,掌握这些方法可以帮助我们高效地处理文件。
os.walk:深度遍历文件夹和文件
os.walk 是 Python 中用于遍历文件夹和文件的最常用方法。它采用深度遍历的方式,从给定的根目录开始,递归地遍历其所有子目录和文件,并返回一个元组,其中包含当前目录的根目录、子目录列表和文件列表。
import os
# 根目录
root_dir = "C:/Users/username/Desktop/project"
# 遍历根目录及其子目录
for root, dirs, files in os.walk(root_dir):
# 当前目录
print(f"Current Directory: {root}")
# 子目录
print("Subdirectories:")
for directory in dirs:
print(f"- {directory}")
# 文件
print("Files:")
for file in files:
print(f"- {file}")
os.listdir:列出目录下的文件和文件夹
os.listdir 是另一个用于遍历目录的方法。它列出给定目录中的所有文件和文件夹,并返回一个包含这些文件和文件夹名称的列表。
import os
# 目录
directory = "C:/Users/username/Desktop/project/data"
# 列出目录下的文件和文件夹
files_and_folders = os.listdir(directory)
# 打印文件和文件夹
print("Files and Folders:")
for item in files_and_folders:
print(f"- {item}")
next:迭代器遍历文件
next 方法可以用于迭代遍历文件。它从文件对象中读取一行,并返回该行内容。
# 打开文件
file = open("C:/Users/username/Desktop/project/data/file.txt", "r")
# 逐行读取文件
while True:
# 读取一行
line = next(file, None)
# 如果读取到末尾,则退出循环
if line is None:
break
# 打印行内容
print(line)
# 关闭文件
file.close()
递归遍历文件和文件夹
递归遍历是一种深度优先搜索算法,它从给定的根目录开始,递归地遍历其所有子目录和文件。这种方法可以用来搜索文件系统中的文件或文件夹,或对文件系统进行操作。
def recursive_traversal(directory):
# 列出目录下的文件和文件夹
files_and_folders = os.listdir(directory)
# 遍历文件和文件夹
for item in files_and_folders:
# 如果是文件,则打印文件名
if os.path.isfile(os.path.join(directory, item)):
print(f"- {item}")
# 如果是目录,则递归遍历该目录
elif os.path.isdir(os.path.join(directory, item)):
recursive_traversal(os.path.join(directory, item))
# 根目录
root_dir = "C:/Users/username/Desktop/project"
# 递归遍历根目录及其子目录
recursive_traversal(root_dir)
通过掌握这些文件遍历方法,我们可以轻松地处理文件系统中的文件和文件夹。这些方法可以帮助我们完成各种任务,例如搜索文件、复制文件、移动文件、删除文件等。掌握这些方法可以使我们更加高效地处理文件,从而提高工作效率。