我想打开一个文件夹中的一系列子文件夹,找到一些文本文件并打印文本文件的一些行。我正在使用这个:
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 文件中?
最佳答案
使用os.walk
和 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
来创建路径。
关于python - 使用Python中的os.walk()模块从子文件夹中提取行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31066127/