Python循环不移动到下一个文件

标签 python os.walk

我正在尝试遍历一个目录,搜索标题中包含“Summary”一词的所有文件。找到文件后,我想打开该文件并检索包含“审核名称”和“已验证命中”的行。另外,还检索了文件的目录路径。

我当前的代码搜索包含 3 个摘要文件的目录。查找目录路径和文件名,但仅获取第一个文件的内容,并将该信息打印三次。

import os
data_dir = "<dir with data>"

for dirpath, dirnames, filenames in os.walk(data_dir):
    for name in filenames:
        if 'Summary' in name:
            ofile = open(name, "r+")
            lines = ofile.readlines()
            ofile.close()
            for line in lines:
                if 'Audit Name:' in line:
                    audit_name = line
                if 'Verified Hits' in line:
                    verified_hits = line
            print(audit_name + verified_hits)

最佳答案

ofile = open(name, "r+")

名称只是文件名,不包含路径。因此,您将打开同一条路径 3 次。

尝试

ofile = open(os.path.join(dirpath, name), "r+")

关于Python循环不移动到下一个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51013259/

相关文章:

python - 为什么这个 Python 脚本会删除 '.txt' 文件,以及所有 '.tmp' 文件?

python - 文件不会用python写

python - matlab函数到python函数的转换

python - 如何从 Python 的字典列表中删除基于选定键的重复字典?

python - os.walk 返回一个生成器对象。我究竟做错了什么?

Python,os.walk(),传递信息备份?

python - libsvm的grid.py输出错误

python - 将 csv 转换为 netcdf

Python 在目录中递归

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