我在 Python 3.2.3 中遇到了 open() 函数的问题。以下代码适用于 2.7.3,但不适用于 Python 3:
file = open("text.txt", 'r')
在 Python3 中,它给了我一个标准的 IOError:
IOError: [Errno 2] No such file or directory: 'text.txt'
请注意,引用的 text.txt 文件与 python 文件位于同一目录中。
有任何想法吗?
我在 Python 3.2.3 中遇到了 open() 函数的问题。以下代码适用于 2.7.3,但不适用于 Python 3:
file = open("text.txt", 'r')
在 Python3 中,它给了我一个标准的 IOError:
IOError: [Errno 2] No such file or directory: 'text.txt'
请注意,引用的 text.txt 文件与 python 文件位于同一目录中。
有任何想法吗?
文件名与文件的目录无关,而是与您当前的工作目录相关(您可以使用 找到os.getcwd()
)。
如果要打开一个名称与 Python 文件相关的文件,可以使用魔法变量__file__
,如下所示:
import os.path
fn = os.path.join(os.path.dirname(__file__), 'text.txt')
with open(fn, 'r') as file:
# Do something, like ...
print(file.read())
您正在尝试以读取模式打开文件,并且该文件必须存在。
也许问题是该文件不存在于您的 python3 路径中,因此打开命令失败,但您的 python2.7 库(或 python2.7 路径中的某个位置)上存在“text.txt”,这就是为什么 python 是能够找到文件并打开它。
您可以尝试此代码(这将确保您创建文件后该文件存在):
f = open('text.txt','w')
f.close()
f.open('text.txt','r')
我将 Eclipse 与 Pydev 一起使用,并且在包中而不是在项目级别上有 text.txt 文件。要访问包中的文件,您需要使用:
file = open("[package]/text.txt", 'r')