我在解析文件的路径中遇到一个IO错误,该文件并不在路径中。

2024-04-25 05:54:09 发布

您现在位置:Python中文网/ 问答频道 /正文

当我打开特定路径中的所有文本和日志文件并打印在其中找到匹配项的日志时,总是会出现错误。下面是返回的错误和代码。有人知道我为什么会遇到这个错误吗?代码的工作方式和它应该的一样?谢谢!在

错误:

file: c:\Python27\13.00.log

Traceback (most recent call last):
  File "C:\Python27\allfiles.py", line 20, in <module>
    f=open(file, "r")
IOError: [Errno 2] No such file or directory: 'LICENSE-OpenSSL.txt'

代码:

^{pr2}$

Tags: 文件代码文本路径logmost错误方式
2条回答

当您打开一个文件时,变量'file'不包含完整路径,因此您会得到错误。在

我想你需要用它的绝对路径打开文件,而不仅仅是它的文件名。尝试将open(..)行改为f = open(os.path.join(root, file),这样就可以了。在

编辑:以下操作适用于我(我也在Windows上使用Python2.7):

#!/usr/bin/env python
import os

userstring = 'test'
path = 'c:\\Python27'

for root, dirname, files in os.walk(path): 
    for file in files:
        if file.endswith(".log") or file.endswith(".txt"):
            filepath = os.path.join(root, file)
            with open(filepath, 'r') as f:
                for line in f:
                    if userstring in line:
                        print "%s in %s" % (userstring, filepath)
                        break
                else:
                    print "%s NOT in %s" % (userstring, filepath)

相关问题 更多 >