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

使用Python中的os.walk()模块从子文件夹中提取行?,python,glob,os.walk,Python,Glob,Os.walk,我想打开一个文件夹中的一系列子文件夹,找到一些文本文件并打印一些文本文件行。我用的是: 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) 这只适用于一个文件夹,但无法访问子文件夹。因此我听

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

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)
这只适用于一个文件夹,但无法访问子文件夹。因此我听说了os.walk()模块。有人知道我如何使用os.walk()模块访问子文件夹,并在单独的txt文件中提取和粘贴特定行吗?

使用和递归获取当前目录中的所有文件路径:

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
在上面的代码中是一个文件名列表。您需要迭代它们以获得文件路径

用于通过连接父目录
p
和文件名
f
来创建路径