我有用Python編寫的代碼。它基於變量'i'生成兩個文件。現在,我需要將這兩個生成的文件中的一個與密鑰文件進行比較,以獲取「i」的正確值。在Python中遞歸比較文件
我正在使用FOR循環來測試'i'值的範圍並使用filecmp.cmp將生成的文件之一與密鑰文件進行比較。當我找到匹配的時候,這意味着我擁有'我'的正確值。
下面是代碼的一部分:
for i in range(100,0,-1):
....
with open("file1", "w") as p, open("file2", "w") as q:
# generate data based on the value of i and write it to the files
if(filecmp.cmp("file1", "keyfile"))
print "%d is the correct value of it" % i
break
應該以這種方式工作:
- 測試的值 'i' 的從100到0遞減 'i' 的一個接一個。
- file1和file2是使用基於'i'值的代碼生成的。
- 現在,我正在比較file1和密鑰文件。如果他們有相同的內容,我找到了正確的鍵,我打破了FOR循環。
我已經把filecmp.cmp語句放在if語句中,因爲它返回一個布爾值如果兩個文件相等,則爲True。當我運行代碼時,這行會引發錯誤。
另外,這是做到這一點的正確方法?每次執行FOR循環時,它都會生成兩個文件file1和file2。 With語句將在循環之後關閉這兩個文件。但是在循環的下一次運行中,這兩個文件是否會被新內容覆蓋?
謝謝。
你真的有產生這兩個文件?難道你不能把內容保存在兩個變量中並比較它們,而不是寫入磁盤,然後重新打開和比較? – Nadh
請描述「filecmp.cmp」行引發的錯誤。 –