我偶然发现了一个文件处理问题, 第二行无缘无故地给你一个值9 第三行给出错误io.UnsupportedOperation:不可读
c = open("Test.txt", "w+")
c.write("Hey there")
content = c.read()
c.close
print (content)
我该如何解决这个问题?
答案 0 :(得分:2)
第二行无理由地为您提供值
这是Python 3中write()
函数的返回值。该值是写入文件的字符数。
第三行给出错误io.UnsupportedOperation:不可读
不确定你在这里做了什么。在write()
之后,文件指针位于文件的末尾。如果您确实使用w+
打开了文件,则不应该看到错误,但应该从文件中读取0个字符。如果您使用模式w
打开文件,那么您将获得io.UnsupportedOperation
异常,因为该文件未打开以供阅读。检查测试时使用的模式。
试试这个:
with open('Test.txt', 'w+') as c:
n = c.write("Hey there")
print('Wrote {} characters to file'.format(n))
content = c.read()
print('Read {} characters from file'.format(len(content)))
print('{!r}'.format(content))
_ = c.seek(0) # move file pointer back to the start of the file
content = c.read()
print('After seeking to start, read {} characters from file'.format(len(content)))
print('{!r}'.format(content))
输出:
Wrote 9 characters to file Read 0 characters from file '' After seeking to start, read 9 characters from file 'Hey there'