2013-02-07 91 views
0

當我嘗試從包含648470個字符串值的普通列表寫入文本文件時,發生了一些奇怪的事情。從大型列表中寫入Python中的文本文件

textFile = open('bins.txt', 'w') 

    for item in bigList: 
     print item # This prints fine 
     textFile.write(item) 

    textFile.close() 

文本文件在文件大小生長迅速,充滿了所有種類的符號,而不是有意的......的,即使我只是寫文本文件被損壞bigList的內容的一小跨度。如果我用一個更小的列表完成同樣的事情,那就沒有問題了。 列表的大尺寸是否會導致此問題? print(bigList[:10])的輸出是

['167', '14444', '118', '22110', '118', '8134', '82', '8949', '7875', '171'] 
+2

請顯示打開文件的位置。 –

+1

@Smajjk你打開的文件像'textFile = open(path,'w')'?你確定你正在寫文字,而不是每行的數字? – theJollySin

+1

我忘了提及,列表中的摘錄也不錯 - 例如,如果您使用'print(bigList [:20])',則由Python給出。 –

回答

1

它對我來說絕對很好。

在您的代碼中,您忘記關閉文件,而且,由於您以追加模式打開文件,我的猜測是您的文件中有一些垃圾,並且您忘記了刪除。

另外,請記住,以這種方式寫入不會以任何方式分隔數字。

+0

我從追加模式更改爲寫入模式,並關閉文件。當我使用textFile.write(item)編寫代碼時,我仍然沒有得到我期待的那麼長的一行數字,只是一堆符號,看起來幾乎就像寫在彼此的頭頂上!但是,當我使用writeFile.write(「%s \ n」%項目)它的作品?! – Smajjk

+0

你使用的是什麼版本的Python和操作系統? – LtWorf

+0

xubuntu 12.10和Python 2.7.3 – Smajjk

0

由於某些列表對象不是字符串,因此文件可能有寫入問題。試試:

textFile = open('bins.txt', 'w') 

for item in bigList: 
    print item # This prints fine 
    textFile.write(str(item)) 

textFile.close() 

但是我看不到你的清單,所以我不確定這是否是一個實際問題。

+0

他說他已經檢查過了,只有字符串。 – LtWorf

+0

嗯。我不知道爲什麼這不會寫,然後......這很奇怪。 – Steven

相關問題