1

我在 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 文件位于同一目录中。

有任何想法吗?

4

3 回答 3

3

文件名与文件的目录无关,而是与您当前的工作目录相关(您可以使用 找到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())
于 2012-04-18T17:06:49.473 回答
0

您正在尝试以读取模式打开文件,并且该文件必须存在。

也许问题是该文件不存在于您的 python3 路径中,因此打开命令失败,但您的 python2.7 库(或 python2.7 路径中的某个位置)上存在“text.txt”,这就是为什么 python 是能够找到文件并打开它。

您可以尝试此代码(这将确保您创建文件后该文件存在):

f = open('text.txt','w')
f.close()
f.open('text.txt','r')
于 2012-04-18T17:19:14.247 回答
0

我将 Eclipse 与 Pydev 一起使用,并且在包中而不是在项目级别上有 text.txt 文件。要访问包中的文件,您需要使用:

 file = open("[package]/text.txt", 'r')
于 2012-04-19T00:53:59.547 回答