我需要查找包含特定字符串的文本文件的所有行,並將每行寫入不同的文本文件。如何改進我的代碼以防止讀取大型文本文件(6GB大小)的第一個5,000,000,000行時系統崩潰?編譯代碼後,我的電腦運行緩慢,並突然凍結。即使我停止編譯過程,內存仍然被佔用,並出現相同的問題。我的IDE是Spyder,我使用Python 2.7。 謝謝!Python for循環導致系統崩潰
我的代碼是:
import fileinput
ot = 'N'
j = 1
i = 1
string = "ABCD"
for line in fileinput.input(['/../myfile.txt']):
if i<=5000000000:
if string in line:
output = open(ot + str(j) + '.txt', 'w')
output.write(line)
output.close()
j += 1
i += 1
嘗試使用'背景manager':'在開線( 'file.txt的', 'R'):' – sshashank124
如果你嘗試讀取50MB的文件,有什麼結果呢? –
@黃建偉,代碼最大工作爲i = 1,000,000,小文本文件例如250MB,但超過他們我的系統顯示沒有足夠的內存(我的操作系統是UBUNTU 13.10和我的電腦的內存是8GB)。 –