嘿伙计们还在这里:)
我得到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操作错误:(
答案 0 :(得分:1)
您在db.close()
循环中正在执行while
,这会在迭代之间关闭文件。这是您的错误的来源。我会将db.close()
移到脚本的末尾。这比每次迭代重新打开文件更有效。
如果您需要在迭代循环时刷新输出,请使用flush(),即db.flush()
。
答案 1 :(得分:1)
错误正是它所说的。您在关闭文件后尝试写入该文件。有两种解决方案:
将close()
个调用移到循环之外。
while True:
# do stuff
db.close()
打开循环内的文件。
while True:
db = open(r"C:\Users\PC\Desktop\db.txt", "a+")
...