新手Python脚本 - 读()

时间:2013-09-08 19:53:47

标签: python file

我正在尝试了解有关python的更多信息并编写了一个简单的脚本,但我无法使read()函数正常工作。我错过了什么?我得到的错误信息是:

追踪(最近一次通话):   文件“ex16demo.py”,第28行,in     print glist.read() IOError:文件未打开以供阅读

我的文件应该打开并分配给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()

谢谢!

2 个答案:

答案 0 :(得分:4)

该文件已打开以供撰写(请参阅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()

另见:

答案 1 :(得分:1)

' w'在glist = open(filename, 'w')中,表示您在'写'中打开文件模式。您需要close()并重新打开它并阅读'模式(open(filename, 'r'))打印出内容。