我正在尝试学习更多关于python的知识,并编写了一个简单的脚本,但我无法让read()函数工作起来。我遗漏了什么?我收到的错误消息是:
追溯(最近一次调用):文件"ex16demo.py",第28行,打印glist.read() IOError:文件未打开以供读取
I文件应该是打开的,并分配给glist变量。
from sys import argv
script, filename = argv
print "We are creating a new grocery list!"
print "Opening %r..." % filename
glist = open(filename, 'w')
print "Deleting previous content from %r......" % filename
glist.truncate()
print "Add your items now:"
item1 = raw_input("item 1:")
item2 = raw_input("item 2:")
item3 = raw_input("item 3:")
print "Adding your items to the list...."
glist.write(item1)
glist.write("\n")
glist.write(item2)
glist.write("\n")
glist.write(item3)
glist.write("\n")
print "Here are the items in your grocery list:"
print glist.read()谢谢!
发布于 2013-09-08 19:56:19
glist = open(filename, 'w')中的“w”表示您在“写”模式下打开文件。您需要在“读取”模式( close() ) (open(filename, 'r'))中重新打开它,以打印出内容。
发布于 2013-09-08 19:55:36
文件是为写入而打开的(请参阅open(filename, 'w'))。
关闭文件,打开它进行读取,然后调用read()
glist.close()
glist = open(filename, 'r')
print glist.read()或者,您可以在r+模式下打开文件进行读写,而无需重新打开(感谢@sberry的评论)。
另外,考虑使用with上下文管理器而不是手动关闭打开的文件:
with open(filename, 'r+'):
print "Deleting previous content from %r......" % filename
glist.truncate()
...
print glist.read()另见:
open()模式https://stackoverflow.com/questions/18688010
复制相似问题