我的代碼:蟒蛇:ValueError異常:在關閉的文件I/O操作
with open('pass.txt') as f:
credentials = dict([x.strip().split(':') for x in f.readlines()]) # Created a dictionary with username:password items
name_input = input('Please Enter username: ')
if name_input in credentials: # Check if username is in the credentials dictionary
name_input = input('Please Enter new username: ')
f.write(name_input)
f.write(":")
pass_input = input('Please Enter password: ')
f.write(pass_input)
f.write("\n")
f.close()
print('Registered')
我收到此錯誤:
Traceback (most recent call last):
File "silwon.py", line 146, in <module>
f.write(name_input)
ValueError: I/O operation on closed file.
還怎麼用戶進入後同樣使用sys.exit用戶名3次?
請修復您的縮進。我懷疑你正試圖在''with''塊之外''寫''到'f',這*保證*文件將被關閉。 –
由於損壞的縮進很難說明,但看起來至少,您正在嘗試將「.write」寫入爲_reading_打開的文件句柄。我不知道_that_是否會產生你所看到的錯誤,儘管... – mgilson
我有一種感覺,在你的真實代碼中,你的'f.write'實際上是在''with'之外。不僅如此,但是一旦你修改了縮進,你就試圖寫入你的文件,但是你處於讀取模式。你也必須打開你的文件以便寫作。 – idjaw