0

嘿伙计们还在这里:)

我得到 ValueError: I/O operation on closed file 错误。

db = open(r"C:\Users\PC\Desktop\db.txt", "a+")
print("""-Type 1 for add film
-Type 2 for see your films
""")
while True:
    enter = input("Please Enter: ")

    if enter == "1":
        film=input("Enter film: ")
        db.write(film + "\n")
        db.close()

    elif enter == "2":
        print("Your's films: ")
        db.seek(0)
        print(db.read())

        db.close()



    elif giris == "":
        print("Please type something!")


    else:
        print("Error!")

当我输入 1 时,我添加了电影并再次输入 2 以查看我的电影。我得到 ValueError: I/O operation on closed file error :(

4

2 回答 2

1

db.close()您正在while循环中进行操作,这会在迭代之间关闭文件。这是你错误的根源。我会移到db.close()你脚本的末尾。这比每次迭代都重新打开文件更有效。

如果您需要在遍历循环时刷新输出,请使用flush(),即db.flush().

于 2013-11-08T21:11:18.220 回答
1

错误正是它所说的。关闭文件后,您正在尝试写入文件。有两种解决方案:

  1. close()调用移出循环。

    while True:
        # do stuff
    
    db.close()
    
  2. 打开循环内的文件。

    while True:
        db = open(r"C:\Users\PC\Desktop\db.txt", "a+")
        ...
    
于 2013-11-08T21:12:53.760 回答