在我们班上,我们的任务是基本上创建一个程序,重新演绎去年的美国大选。其中一个额外的挑战是,当您输入已存在于文件中的ID号时,它应该出现错误并停止。但是,当我尝试执行此代码时,它会出现
ValueError:关闭文件的I / O操作。
这是我迄今为止所做的代码......
ID = input("Please input ID code ")
if(len(ID)) == 6:
print("ID length: Valid")
N += 1
else:
print("ID Code: Error")
sys.exit()
with open('ID.txt', 'a') as idc:
idc.write(ID + ' ')
already_seen = set()
for line in idc:
if line not in already_seen:
print("Valid")
else:
print("Error")
sys.exit()
由于
答案 0 :(得分:0)
你应该知道
之间的区别with open('ID.txt', 'a') as idc:
do sth
和
idc = open('ID.txt', 'a')
在第一种情况下,在do sth
完成后,将调用idc的__exit__()
来关闭文件对象。
我建议你使用我在上面指出的第二个表达式。如果您不熟悉Python,blog将帮助您了解详细原因。