gpt4 book ai didi

python - 如何使用 Python Generator 区分两个文件

转载 作者:行者123 更新时间:2023-12-04 13:25:37 24 4
gpt4 key购买 nike

我有一个 100GB 的文件,其中 1 到 1000000000000 由新行分隔。在这其中缺少一些行,例如 5、11、19919 等。我的 Ram 大小为 8GB。

如何找到缺失的元素。

我的想法取另一个文件 for i in range(1,1000000000000)使用 逐行阅读发电机 .我们可以用 产量对此的声明

可以帮忙写代码

我的代码,下面的代码作为列表,下面的代码可以用于生产吗?

def difference(a,b):
with open(a,'r') as f:
aunique=set(f.readlines())


with open(b,'r') as f:
bunique=set(f.readlines())

with open('c','a+') as f:
for line in list(bunique - aunique):
f.write(line)

最佳答案

如果值按顺序排列,您可以简单地记下前一个值并查看差值是否等于 1:

prev = 0
with open('numbers.txt','r') as f:
for line in f:
value = int(line.strip())
for i in range(prev, value-1):
print('missing:', i+1)
prev = value
# output numbers that are missing at the end of the file (see comment by @blhsing)
for i in range(prev, 1000000000000):
print('missing:', i+1)

这在 python3 中应该可以正常工作,因为 readlines 是一个迭代器,因此不会立即加载完整文件或将其保存在内存中。

关于python - 如何使用 Python Generator 区分两个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57591210/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com