我在运行python代码时得到一个ValueError: I/O operation in closed file
。我相信这是导致问题的原因:
fn = './seenFrontPagePosts.txt'
try:
f = open(fn, 'r+')
except IOError:
f = open(fn, 'w+')
try:
frontOld = json.loads(f.readline())
except:
frontOld = []
for post in redditFrontPage:
if str(post.subreddit) == subreddit:
print("We have a post on r/all! '{}'".format(post.title))
if str(post.id) not in frontOld:
print("We haven't seen it before!")
message = post.reply(allMessage)
message.distinguish(sticky=True)
frontOld.append(str(post.id))
else:
print("We have seen it before.")
f.seek(0)
f.truncate()
f.seek(0)
f.write(json.dumps(frontOld))
f.close()
我如何修复错误?是语法错误还是更复杂?在
以下是完整的错误:
^{pr2}$
在最外层循环的一次迭代之后,
f.close()
关闭文件。所以,下次到达f.seek(0)
时,它遇到关闭的文件并抛出错误。您需要在最外层循环的开始处执行open
您正在循环访问列表
redditFrontPage
中的元素,并在该循环中关闭文件f
。因此,在下一次迭代中,您试图对该文件执行一些操作,但它是关闭的。在您需要在循环中打开文件,或者不在循环中关闭文件。在
相关问题 更多 >
编程相关推荐