首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >脚本- read()

脚本- read()
EN

Stack Overflow用户
提问于 2013-09-08 19:53:46
回答 2查看 106关注 0票数 2

我正在尝试学习更多关于python的知识,并编写了一个简单的脚本,但我无法让read()函数工作起来。我遗漏了什么?我收到的错误消息是:

追溯(最近一次调用):文件"ex16demo.py",第28行,打印glist.read() IOError:文件未打开以供读取

I文件应该是打开的,并分配给glist变量。

代码语言:javascript
复制
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()

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-08 19:56:19

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

票数 1
EN

Stack Overflow用户

发布于 2013-09-08 19:55:36

文件是为写入而打开的(请参阅open(filename, 'w'))。

关闭文件,打开它进行读取,然后调用read()

代码语言:javascript
复制
glist.close()

glist = open(filename, 'r')
print glist.read()

或者,您可以在r+模式下打开文件进行读写,而无需重新打开(感谢@sberry的评论)。

另外,考虑使用with上下文管理器而不是手动关闭打开的文件:

代码语言:javascript
复制
with open(filename, 'r+'):

    print "Deleting previous content from %r......" % filename
    glist.truncate()

    ...

    print glist.read()

另见:

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18688010

复制
相关文章

相似问题

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