您的位置:

使用Python的walk print遍历文件夹并打印文件内容

一、Python的os module

在Python中,我们可以使用os module访问文件和文件夹。os module提供了各种功能,包括文件和目录操作、进程管理、环境变量等。

要读取文件夹中的所有文件,我们可以使用os.walk()方法,该方法生成文件夹中所有文件的文件名(包括子文件夹)。

import os

for root, dirs, files in os.walk("."):
    for filename in files:
        print(os.path.join(root, filename))

这个代码片段将遍历当前目录(".")以及所有子目录,并打印出每个文件的全路径。os.walk()方法返回一个元组,其中包含当前目录的路径、当前目录中子目录的名称以及当前目录中文件的名称。

二、打印文件内容

如果我们想要打印文件的内容,我们需要使用Python中的open()方法打开文件,并使用read()方法读取文件的内容。

import os

for root, dirs, files in os.walk("."):
    for filename in files:
        with open(os.path.join(root, filename)) as f:
            print(f.read())

这个代码段将遍历当前目录以及所有子目录,打印每个文件的内容。

三、过滤文件

在大多数情况下,我们只对文件夹中的特定文件感兴趣。为了过滤文件,我们可以使用Python的字符串方法。

import os

for root, dirs, files in os.walk("."):
    for filename in files:
        if filename.endswith(".txt"):
            with open(os.path.join(root, filename)) as f:
                print(f.read())

这个代码段将只打印扩展名为".txt"的文件的内容。

四、输出到文件

有时,我们可能需要将打印的结果保存到文件中。为此,我们可以使用Python的文件对象。

import os

with open("output.txt", "w") as out_file:
    for root, dirs, files in os.walk("."):
        for filename in files:
            if filename.endswith(".txt"):
                with open(os.path.join(root, filename)) as f:
                    out_file.write(f.read())

这个代码段将遍历所有扩展名为".txt"的文件,并将它们的内容写入名为"output.txt"的文件中。