我正在解析一个20Gb的文件,并将符合特定条件的行输出到另一个文件中,但是偶尔Python会一次读入两行并将它们连接在一起。
inputFileHandle = open(inputFileName, 'r')
row = 0
for line in inputFileHandle:
row = row + 1
if line_meets_condition:
outputFileHandle.write(line)
else:
lstIgnoredRows.append(row)
我已经检查了源代码文件中的行尾,并且它们都是换行符(ASCII字符10)。将问题行单独提取出来进行解析可以正常工作。我是否遇到了一些 Python 的限制?第一个异常行在文件中的位置大约在 4GB 标记附近。
lstIgnoredRows
是一个列表,它会增长到多大?如果您只是将感兴趣的行保存到输出文件中,并没有处理您想要忽略的行,那么会发生什么呢? - LevonlstIgnoredRows
可能会变得棘手。为什么不将被忽略的行号写入另一个文件呢? - Hooked