2017-04-17 212 views
0

我有一個腳本,只是讀取文件並將其內容添加到數組。每個文件的大小爲7M到15M。並且文件的數量是100.總共文件的大小是800M。Python:最大數組大小?

full_str = [] 
for indexfile in files: 
    with open(indexfile) as f: 
     iindex = f.read() 
    full_str += [str(iindex)] 

我從here知道元素的最大數量應小於500M,所以這裏不是限制,但是我得到了我的問題,當我運行的代碼。任何人都可以告訴我,如果有另一個限制殺死這個過程?我該怎麼辦?

+0

你會得到任何錯誤/異常像「MemoryError」?請分享您收到的錯誤? –

+0

我不是100%確定,但它看起來像你的代碼有一些其他問題不是一個'內存'問題。這是因爲Python的內存限制取決於您的計算機和操作系統有多少物理內存和虛擬內存磁盤空間。如果你全部使用它,你會得到'MemoryError',否則你的程序應該「工作」很好。 –

+0

該進程剛剛被操作系統殺死,我也沒有例外。當我執行它時,仍然有可用的RAM,並且cpu接近90%,但系統的負載和非常高(大約60到80)並且突然它被殺死。代碼和上面一樣簡單,文件只包含一個我已經寫入文件的json對象。我不明白這段代碼有什麼問題嗎?它非常簡單。 – Alex

回答

0

令人驚訝的是,我發現該進程因文件內容包含非ASKI字符而被殺害,並導致此錯誤。所以我簡單地用'UTF-8'編碼所有東西,現在它可以工作。