gpt4 book ai didi

python - Python cPickle 的嵌套循环

转载 作者:行者123 更新时间:2023-11-28 21:27:58 24 4
gpt4 key购买 nike

我希望能够有一系列使用相同 pickle 文件的嵌套循环。见下文:

def pickleRead(self):
try:
with open(r'myfile', 'rb') as file:
print 'Reading File...'
while True:
try:
main = pickle.load(file)
id = main[0]
text = main[1]
while True:
try:
data = pickle.load(file)
data_id = data[0]
data_text = data[1]
coefficient = Similarity().jaccard(text.split(),data_text.split())
if coefficient > 0 and data_text is not None:
print str(id) + '\t' + str(data_id) + '\t' + str(coefficient)
except EOFError:
break
except Exception as err:
print err
except EOFError:
break

print 'Done Reading File...'
file.close()
except Exception as err:
print err

第二个(内部)循环运行没有任何问题,但第一个循环只执行一次迭代然后停止。我试图一次获取一行,然后将其与文件中的每一行进行比较。有几千行,我发现 cPickle 模块执行类似的操作。问题是它在暴露的内容上是有限的。谁能指出我正确的方向?

最佳答案

内部循环只有在读取文件时遇到 EOFError 时才会停止,所以当您到达外部循环的第二次迭代时,您已经阅读了整个文件文件。因此,尝试阅读更多内容只会给您另一个 EOFError,您就出局了。

关于python - Python cPickle 的嵌套循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9356349/

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