23

当我尝试在 Python 中打开文件时出现错误。这是我的代码:

>>> import os.path
>>> os.path.isfile('/path/to/file/t1.txt')
>>> True
>>> myfile = open('/path/to/file/t1.txt','w')
>>> myfile
>>> <open file '/path/to/file/t1.txt', mode 'w' at 0xb77a7338>
>>> myfile.readlines()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IOError: File not open for reading

我也试过:

for line in myfile:
    print(line)

我得到了同样的错误。有谁知道为什么会发生这个错误?

4

2 回答 2

46

您通过将模式指定为打开文件进行写入'w';打开文件进行阅读:

open(path, 'r')

'r'是默认值,所以可以省略。如果你需要读写,使用+模式:

open(path, 'w+')

w+打开文件进行写入(将其截断为 0 字节),但也允许您从中读取。如果你使用r+它,它也可以读写,但不会被截断。

如果您要使用双模式,例如r+or w+,您也需要熟悉该.seek()方法,因为同时使用读取和写入操作会移动文件中的当前位置,您很可能想要移动当前文件在这些操作之间明确定位。

有关详细信息,请参阅该函数的文档open()

于 2012-11-09T14:05:13.790 回答
1

如果你仔细想想,这是一个简单的错误。在您的代码中,您正在执行以下操作:

myfile = open('/path/to/file/t1.txt','w')

指定它用于写入,您需要做的是将其设置为 r 用于读取

myfile = open('/path/to/file/t1.txt','r')
于 2012-11-09T14:10:58.660 回答