我必須在這裏犯一個愚蠢的錯誤,因爲這應該正在工作。我在考慮這個文件是否保持開放或者是什麼,這讓我瘋狂。python - 比較新寫入的文件與filecmp.cmp()總是返回False?
這是一些迴歸測試用例,我將腳本的生成輸出與模擬文件的生成輸出比較爲已知的良好輸出文件(密鑰文件)。
下面是一個簡單的例子:
def run_and_compare(self, key_file, out_file, option):
print filecmp.cmp(out_file, key_file) # always True (as long as I've run this before, so the out_file exists already)
cmd = './analyze_files.py -f option'
with open(out_file, 'wb') as out:
subprocess.Popen(cmd.split(), stdout=out, stderr=subprocess.PIPE)
print filecmp.cmp(out_file, key_file) # always False
time.sleep(5)
print filecmp.cmp(out_file, key_file) # always True
我真的不希望保持睡眠測試!我怎樣才能確保out文件可以比較而不使用睡眠?我試過使用out.close(),但它不起作用,只要我使用'with'就不需要。我在這裏使用python 2.6.4。
'filecomp.cmp()'緩存的結果,所以第一* * TRUE;你看到的是從你調用此函數的最後一次.. –