如何在Python中迭代给定目录中的文件?

如何在Python中迭代给定目录中的文件?

有时我们需要处理一组文件,例如将它们合并或提取其内容。在Python中,我们可以使用迭代器循环来遍历文件夹中所有文件。它有时比手动打开并处理每个文件更方便。

遍历目录

在Python中遍历目录以查找文件相对容易。 os模块提供多个用于操作文件系统的函数。os.listdir()函数返回给定目录中的所有文件和目录。下面的代码演示如何使用os.listdir()函数来打印目录中的所有文件:

import os

directory = '/path/to/your/folder'
for filename in os.listdir(directory):
    print(filename)

请注意,在上面的代码中,我们只打开了一个文件夹,但是我们可以循环嵌套来处理层级更深的文件夹。

for dirpath, dirnames, filenames in os.walk(directory):
    print(f"Found directory: {dirpath}")
    for file_name in filenames:
        print(file_name)

上面的代码将输出传递给os.walk()函数的所有文件名。

过滤文件

在某些情况下,我们只想迭代特定类型的文件。使用os.path.splitext()函数将文件名和扩展名分开。下面的代码将列出给定目录中的所有txt文件:

import os

directory = '/path/to/your/folder'
for filename in os.listdir(directory):
    if filename.endswith('.txt'):
        print(filename)

我们还可以使用列表推导来执行过滤。为了取得更好的性能,我们可以使用os.scandir()函数来代替os.listdir()函数:

import os

directory = '/path/to/your/folder'
files = [f.name for f in os.scandir(directory) if f.is_file() and f.name.endswith('.txt')]

print(files)

总结

在Python中,我们可以使用os.listdir()os.walk()函数遍历目录,并使用os.path.splitext()和列表推导来过滤文件。通过这些方法,我们可以轻松地迭代特定目录中的文件,并处理您需要的数据。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程