python - 使用Python中的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)

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

最佳答案

使用os.walkgenerator 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/

相关文章:

python - 子图中的循环产生了两次图表

python - os.walk 在 Mac 和 Linux 上排序不同的文件夹?

python - 如何从文件中读取文件内容?

python - 从 Django 表单实例中检索变量

python - pandas:根据其他变量的值获取列的值

python - 导入一个类的静态方法而不导入整个类

bash - 将 GLOBIGNORE 传递给 bash 调用

python - 使用 glob 排除子文件夹

delphi - 如何查找目录中的所有 MP3 文件?

python - 在 Python 中列出子目录中的文件 - mindepth & maxdepth