ValueError:关闭文件错误“txt数据库”的I / O操作

时间:2013-11-08 21:09:06

标签: python database python-3.x io

嘿伙计们还在这里:)

我得到ValueError:关闭文件时的I / O操作错误。

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操作错误:(

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

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

  1. close()个调用移到循环之外。

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

    while True:
        db = open(r"C:\Users\PC\Desktop\db.txt", "a+")
        ...