Python IOError:文件未打开以供阅读

时间:2012-11-09 14:04:28

标签: python file file-io

当我尝试在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)

我得到了同样的错误。有人知道为什么会出现这个错误吗?

2 个答案:

答案 0 :(得分:42)

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

open(path, 'r')

'r'是默认值,因此可以省略。如果您需要同时进行读写操作,请使用+模式:

open(path, 'w+')

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

如果您要使用r+w+这样的双重模式,您需要熟悉.seek() method,因为使用读取和写入操作都会移动文件中的当前位置,您很可能希望在此类操作之间明确移动当前文件位置。

有关详细信息,请参阅documentation of the open() function

答案 1 :(得分:1)

如果你考虑它就会犯很简单的错误。在您的代码中:

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

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

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