我有两个大文件(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