Python循环不移动到下一个文件
Posted
技术标签:
【中文标题】Python循环不移动到下一个文件【英文标题】:Python loop not moving to next file 【发布时间】:2018-06-24 19:25:13 【问题描述】:我正在尝试遍历一个目录,搜索标题中包含“摘要”一词的所有文件。找到文件后,我想打开文件并检索存在“审核名称”和“已验证命中”的行。另外,检索了文件的目录路径。
我当前的代码搜索包含 3 个摘要文件的目录。查找目录路径和文件名,但仅从第一个文件中获取内容,并将该信息打印 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)
【问题讨论】:
您确定没有产生结果的两个文件包含所需的行吗?我建议您在循环开始时重置 audit_name 和 verify_hits。 【参考方案1】:ofile = open(name, "r+")
Name 只是文件名,不包括路径。所以你打开相同的路径 3 次。
试试
ofile = open(os.path.join(dirpath, name), "r+")
【讨论】:
嗯,我以为OP似乎说文件在同一目录中。 我认为它在那个目录或子目录中。否则我不确定他为什么会使用os.walk
,但你可能是对的。
是的,我很确定你已经找到了问题。
感谢您提出这个问题,以防 OP
'os.path.join' 模块正是我所需要的。感谢您的反馈。以上是关于Python循环不移动到下一个文件的主要内容,如果未能解决你的问题,请参考以下文章