有 2 个文件order_fix.txt,listdir.txt您需要检查文件中的每一行listdir.txt以检查在我order_fix.txt
编写此脚本中是否存在同一行:
end_list = open('end_list.txt','w')
listdir = open('listdir.txt')
order = open('order_fix.txt')
for line in listdir.readlines():
if line in open('order_fix.txt').read():
end_list.write(line)
listdir.txt但是文件中约 2kk 行超过 5 小时需要很长时间。有什么方法可以加快这个过程吗?
像这样的东西:
对于 listdir 中的每一行,您都重新阅读了整个 order_fix。但是从磁盘读取是一项相当繁重的操作。因此,在可能的情况下,您应该尝试仅将文件读入 RAM 一次并使用内存中的数据。
此外,在列表中搜索某个事件
set比在列表中要快得多,因此如果您需要在一个大列表中进行大量主动搜索,最好从它构建一次set并在其中搜索。PS:请写下我的代码比你的代码运行速度快多少,我很好奇))
UPD:我仍然没有在您的代码中看到您关闭文件的位置。你在做吗?如果没有,那么在您完成使用文件后,应始终关闭这些文件。一般来说,只要有可能,最好只在上下文管理器的帮助下处理文件。