2015-10-06 61 views
-1

我想在python中創建一個文件,並且遇到錯誤。我不知道爲什麼它會出現這種情況,我確實在網上查找,但無法找到解決我的問題的方法。我有進口隨機的,我確實有ENC1在Python中寫入文本文件時出錯[關閉文件上的I/O操作]

f = open("Skins.txt",'w') 
for r in range(1,1201): 
    f.write(str(r)) 
    f.write(",") 
    f.write(random.choice(enc1)) 
    f.write("\n") 
    f.close() 

錯誤列表:

f.write(str(r)) 
    ValueError: I/O operation on closed file. 

回答

3

你試圖關閉該文件在每次迭代結束。將閉合操作移出循環塊。

f = open("Skins.txt",'w') 
for r in range(1,1201): 
    f.write(str(r)) 
    f.write(",") 
    f.write(random.choice(enc1)) 
    f.write("\n") 
f.close() 

或者使用with打開文件,一旦循環之外,它writelines寫入數據:

with open("Skins.txt",'w') as f: 
    f.writelines("{},{}\n".format(r, random.choice(enc1)) for r in range(1,1201)) 
+0

完美!愚蠢的錯誤,當我縮進!我會標記回答一下! :d – theRumblers100

1

您關閉該文件的循環中,第一次迭代的文件後,因此關閉,因此試圖寫入它失敗,因爲你得到的錯誤。

我建議使用with statement來打開文件(以便它自動處理關閉文件),這樣就不會出現這種問題。此外,您不需要所有這些不同的f.write()報表,您可以使用str.format()並在單個.write()中執行相同操作。

示例 -

with open("Skins.txt",'w') as f: 
    for r in range(1,1201): 
     f.write("{},{}\n".format(r, random.choice(enc1))) 
相關問題