在非常大的文件中查找行以循环结束(可能)



我有两个大文件(644g和23gb(,其中有数百万行。在我的计算中,在创建这些文件之前,是因为我的计算机在11秒内检查较小的文件,在5分钟内检查较大的文件。这些行中的每一行都有一个字符序列,后面的每一行都是这样。当我在这个文件中搜索给定的行时,搜索时间比我想象的要长得多,而且是无穷无尽的。我的印象是;对于";函数正在循环。我想知道是否不在文件的末尾添加一行,例如";一切都结束了"并将其添加到代码中,如果它找到"0";一切都结束了"它应该做其他事情。我的部分代码:

if licznik > 2:
for line in b:
if not line.startswith(number): continue 
play_max()
elif licznik = 0:
for line in a:
if not line.startswith(number): continue 
play_max()

我还想补充一点,如果在文件中找不到行,它会做";play_one((">

IDK也许这是一个耳朵?:

elif licznik == 0:
for line in a:
if not line.startswith(hasz):
play_one()
play_max()

现在while循环从未停止,因为它总是True。一旦文件完成,你需要一些东西来阻止它。对于play_one()的省略,我假设play_max()也包含一些内容,这些内容将打破while循环或停止脚本。

end_of_file = False
while not end_of_file:
if licznik > 2:
for line in b:
if not line.startswith(number): continue 
play_max()
end_of_file = True
play_one()
elif licznik == 0:
for line in a:
if not line.startswith(number): continue 
play_max()
end_of_file = True
play_one()

此外,elif licznik = 0应为elif licznik == 0

最新更新