首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python IOError:未打开文件进行读取

Python IOError:未打开文件进行读取
EN

Stack Overflow用户
提问于 2012-11-09 22:04:28
回答 2查看 62.7K关注 0票数 23

当我尝试在Python中打开一个文件时,我得到一个错误。下面是我的代码:

代码语言:javascript
复制
>>> 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

我也试过了:

代码语言:javascript
复制
for line in myfile:
    print(line)

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-09 22:05:14

您可以通过将模式指定为'w'来打开要写入的文件;改为打开要读取的文件:

代码语言:javascript
复制
open(path, 'r')

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

代码语言:javascript
复制
open(path, 'w+')

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

如果您要使用双模式,如r+w+,则还需要熟悉.seek() method,因为同时使用读和写操作将移动文件中的当前位置,并且您很可能希望在这些操作之间显式地移动当前文件位置。

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

票数 46
EN

Stack Overflow用户

发布于 2012-11-09 22:10:59

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

代码语言:javascript
复制
myfile = open('/path/to/file/t1.txt','w')

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

代码语言:javascript
复制
myfile = open('/path/to/file/t1.txt','r')
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13309548

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档