Python ValueError:关闭文件中的I/O操作
运行python代码时,我在关闭的文件中得到一个Python ValueError:关闭文件中的I/O操作,python,reddit,praw,Python,Reddit,Praw,运行python代码时,我在关闭的文件中得到一个ValueError:I/O操作。我认为这是造成问题的原因: 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 redditFron
ValueError:I/O操作。我认为这是造成问题的原因:
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()
如何修复错误?是语法错误还是更复杂
以下是全部错误:
Traceback (most recent call last):
File "pythonCode.py", line 60, in <module>
f.seek(0)
ValueError: I/O operation on closed file.
回溯(最近一次呼叫最后一次):
文件“pythonCode.py”,第60行,在
f、 搜索(0)
ValueError:对关闭的文件执行I/O操作。
您正在列表redditFrontPage
中的元素之间循环,并在该循环中关闭文件f
。因此,在下一次迭代中,您试图对文件执行一些操作,但文件已关闭
您需要在循环中打开文件,或者不关闭循环中的文件。您正在通过列表redditFrontPage
中的元素进行循环,并在该循环中关闭文件f
。因此,在下一次迭代中,您试图对文件执行一些操作,但文件已关闭
您需要在循环中打开文件,或者不关闭循环中的文件。在最外层循环的一次迭代后,f.close()
关闭文件。因此,下次到达f.seek(0)
时,它会遇到关闭的文件并抛出错误。您需要在最外层循环开始时执行open
操作,在最外层循环迭代一次后,f.close()
关闭文件。因此,下次到达f.seek(0)
时,它会遇到关闭的文件并抛出错误。您需要在最外层循环的开始处执行open