首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python错误消息io.UnsupportedOperation:不可读

Python错误消息io.UnsupportedOperation:不可读
EN

Stack Overflow用户
提问于 2017-07-04 09:13:45
回答 5查看 213.8K关注 0票数 94

我有这样的代码:

代码语言:javascript
复制
line1 = []
line1.append("xyz ")
line1.append("abc")
line1.append("mno")
    
file = open("File.txt","w")
for i in range(3):
    file.write(line1[i])
    file.write("\n")

for line in file:
    print(line)
file.close()

但是,当我尝试时,我会收到一条错误消息,比如:

代码语言:javascript
复制
  File "...", line 18, in <module>
     for line in file:
 
UnsupportedOperation: not readable

为什么?我该怎么解决呢?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2017-07-04 09:18:32

您正在以"w"的形式打开该文件,它代表可写。

使用"w",您将无法读取文件。相反,请使用以下方法:

代码语言:javascript
复制
file = open("File.txt", "r")

此外,以下是其他选项:

代码语言:javascript
复制
"r"   Opens a file for reading only.
"r+"  Opens a file for both reading and writing.
"rb"  Opens a file for reading only in binary format.
"rb+" Opens a file for both reading and writing in binary format.
"w"   Opens a file for writing only.
"a"   Open for writing. The file is created if it does not exist.
"a+"  Open for reading and writing.  The file is created if it does not exist.
票数 215
EN

Stack Overflow用户

发布于 2018-10-21 07:24:01

如果文件不存在,可以使用a+打开文件进行读取、写入和创建。

a+为追加和读取打开一个文件。如果文件存在,则文件指针位于文件的末尾。文件以附加模式打开。如果该文件不存在,它将创建一个用于读写的新文件。-Python文件模式

代码语言:javascript
复制
with open('"File.txt', 'a+') as file:
    print(file.readlines())
    file.write("test")

注意:打开with块中的文件可以确保在块的末尾正确关闭文件,即使在途中引发异常也是如此。它相当于try-finally,但要短得多。

票数 28
EN

Stack Overflow用户

发布于 2017-07-04 09:17:57

打开文件的方式不多(读、写等)

如果您想从文件中读取,您应该键入file = open("File.txt","r"),如果是写而不是file = open("File.txt","w")。你需要对你的使用给予正确的许可。

更多模式:

  • 打开一个仅用于读取的文件。
  • 经常预算打开仅以二进制格式读取的文件。
  • r+为读写打开一个文件。
  • rb+为二进制格式的读写打开一个文件。
  • 打开一个只用于书写的文件。
  • 您可以在这里中找到更多的模式
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44901806

复制
相关文章

相似问题

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