使用 Python 中的 os.walk() 模块从子文件夹中提取行?

extract lines from sub-folders using os.walk() module in Python?

我想打开文件夹中的一系列子文件夹并找到一些文本文件并打印文本文件的一些行。我正在使用这个:

from glob import glob
import fileinput
with open('output.txt', 'w') as out:
    for line in fileinput.input(glob('*.')):
        if 'Subject:' in line:
            out.write(line)

这只适用于一个文件夹,但无法访问子文件夹,因为 well.so 我听说了 os.walk() 模块。有谁知道我如何使用 os.walk() 模块来访问子文件夹并将特定行提取并粘贴到单独的 txt 文件中?

使用os.walk and generator expression递归获取当前目录下的所有文件路径:

from glob import glob
import fileinput
import os

with open('output.txt', 'w') as out:
    files = (os.path.join(p, f) for p, ds, fs in os.walk(os.curdir) for f in fs)
    for line in fileinput.input(files):
        if 'Subject:' in line:
            out.write(line)
上面代码中的

fs是一个文件名列表。您需要迭代它们以获取文件路径。

os.path.join用于通过连接父目录p和文件名f.

来创建路径