Python ValueError:关闭文件中的I/O操作

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

运行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 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