You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法打开或读取日志文件:FileNotFoundError问题求助

问题原因

你只收集了日志文件的文件名,但没有保存文件的完整路径。os.walk遍历目录时,root变量是当前遍历到的子目录路径,而filename只是该目录下的文件名。当你用open(filename, 'r')打开文件时,Python会在当前脚本的工作目录中查找这个文件,而不是它实际所在的子目录,所以触发了FileNotFoundError。

解决方法

在收集文件信息时,用os.path.join(root, filename)拼接出文件的完整路径,替换原来只存filename的逻辑。这样打开文件时就能准确定位到文件的实际位置。

修正后的代码
import os 

FILE_PATHS = []  # 改为存储文件完整路径
FILE_COUNT = 0
dir_path = r"C:\Users\me\Documents\Python Scripts\Log Parsing\Logs"

for root, dirs, files in os.walk(dir_path):
    for filename in files:
        # 拼接完整路径并存入列表
        full_path = os.path.join(root, filename)
        FILE_PATHS.append(full_path)
        FILE_COUNT += 1
        print(filename)
    print(FILE_COUNT)

for file_path in FILE_PATHS:
    # 从完整路径中提取文件名用于输出提示
    filename = os.path.basename(file_path)
    print(filename," contains the following string:\n")
    with open(file_path, 'r') as f:  # 用with语句自动关闭文件,更安全
        for line in f:
            if "their browser" in line:
                print(line)
    print('\n')
额外优化点
  • 使用with open(...)语句代替手动调用f.close(),可以确保文件在操作后自动关闭,避免资源泄漏。
  • 变量名从FILENAMES改为FILE_PATHS,更贴合实际存储的内容,提高代码可读性。

内容的提问来源于stack exchange,提问作者subzeroLV

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 09:18:30