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

时间:2017-07-04 09:13:45

标签: python-3.x file

我制作了一个简单的程序,但是当我运行它时会显示以下错误:

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()

显示以下错误消息:

  

文件“C:/ Users / Sachin Patil / fourth,py.py”,第18行,在中       对于文件中的行:

     

UnsupportedOperation:不可读

5 个答案:

答案 0 :(得分:49)

您要将文件打开为w,代表writable

使用w您将无法读取该文件。请改用以下内容:

file = open("File.txt","r")

此外,以下是其他选项:

"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.

答案 1 :(得分:5)

打开文件的方式很少(读,写等)。

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

更多模式:

  • 河打开文件以供阅读。
  • RB。打开文件以仅以二进制格式读取。
  • r +打开文件进行读写。
  • rb +以二进制格式打开读写文件。
  • 瓦特打开文件仅供写入。
  • 您可以在here
  • 中找到更多模式

答案 2 :(得分:2)

如果您要同时打开文件以进行读取,写入和创建(如果该文件不存在),那么我建议您使用a+

  

a +打开一个文件以进行附加和读取。文件指针位于   文件的末尾(如果文件存在)。该文件在附件中打开   模式。如果该文件不存在,它将创建一个新文件以供读取   和写作。 -Python file modes

with open('"File.txt', 'a+') as file:
    print(file.readlines())
    file.write("test")

注意:在with块中打开文件可确保在块末尾正确关闭文件,即使途中出现异常也是如此。它等效于try-finally,但更短。

答案 3 :(得分:2)

如果文件不存在,这将允许您读取,写入和创建文件:

f = open('filename.txt','a+')
f = open('filename.txt','r+')

常用命令:

f.readline() #Read next line
f.seek(0) #Jump to beginning
f.read(0) #Read all file
f.write('test text') #Write 'test text' to file
f.close() #Close file

答案 4 :(得分:1)

Sreetam Das 的表不错,但根据 w3schools 和我自己的测试需要进行一些更新。不确定这是否是由于迁移到 python 3。

"a" - Append - 将追加到文件的末尾,如果指定的文件不存在,将创建一个文件。

"w" - 写入 - 将覆盖任何现有内容并在指定文件不存在时创建一个文件。

"x" - 创建 - 将创建一个文件,如果文件存在则返回错误。

我会直接回复,但我没有代表。

https://www.w3schools.com/python/python_file_write.asp