我想能夠有一系列使用相同的pickle文件的嵌套循環。見下文:與Python cPickle的嵌套循環
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模塊執行任何類似的操作。問題在於它暴露的內容有限。任何人都可以將我指向正確的方向嗎?
我不明白。文件是否隨着你的修改而被修改? – 2012-02-20 05:04:51
該文件未被編輯,只是只讀。 – aeupinhere 2012-02-20 05:21:38
小提示:使用'with'進行文件處理的一部分是該文件在最後自動關閉;沒有必要自己關閉它。另外,由於'file'是內置的Python,因此建議使用不同的名稱(爲此目的使用'f'是很常見的)。 – 2012-02-20 05:58:49