我需要找到包含特定字符串的文本文件的所有行,并将每行写入不同的文本文件如何改进代码以防止读取大文本文件(6GB大小)的前5000000000行时系统崩溃编译完代码我的电脑运行缓慢,突然冻结即使我停止编译过程,内存仍然被占用,同样的问题也会出现我的IDE是Spyder,我使用Python2.7。
谢谢您!
我的代码是:

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

最佳答案

您可以尝试以下代码:

file_input = open('mhyfile.txt','r')
for line in file_input:
    #Your code here

for line in file_input:循环将逐行读取文件。但我在Linux系统中进行了测试,发现fileinput.input()不再使用内存。我认为你应该提供更多关于你的问题的信息。
一个可能的问题是,您在磁盘中写入的文件太多,导致系统崩溃您可以尝试将选定的行写入一个文件并标记行号j

09-10 07:03
查看更多