1
輸入文件,如下面的字段模式asMode|Date|Count|timestamp|status|insertTimeStamp
如何忽略一個字段數據,同時比較兩個文件在python
test1.txt:
HR|06/08/2016|3000|Thu Jun 09 2016|Complete|20160627020300
HR|06/08/2016|2000|Thu Jun 09 2016|Complete|20160627020400
HR|06/08/2016|1000|Thu Jun 09 2016|Complete|20160627020500
test2.txt:
HR|06/08/2016|3010|Thu Jun 09 2016|Complete|20160627070300
HR|06/08/2016|2000|Fri Jun 09 2016|Complete|20160627080300
HR|06/08/2016|1500|Thu Jun 09 2016|Complete|20160627090300
現在,我的要求是這兩個文件之間的差異線比較,但是它應該忽略insertTimeStamp
字段(最後一列數據)進行比較。
我試過下面的代碼。它工作正常,但它的逐行比較。有人可以建議我怎麼能比較我的代碼跳過insertTimeStamp
字段?
在此先感謝您的幫助。
import difflib
import sys
with open('/tmp/test1.txt', 'r') as hosts0:
with open('/tmp/test2.txt', 'r') as hosts1:
diff = difflib.unified_diff(
hosts0.readlines(),
hosts1.readlines(),
fromfile='hosts0',
tofile='hosts1',
n=0,
)
for line in diff:
for prefix in ('---', '+++', '@@'):
if line.startswith(prefix):
break
else:
sys.stdout.write(line[1:])
謝謝其給予o/p如下:HR | 06/08/2016 | 3000 | Thu Jun 09 2016 |完成 HR | 06/08/2016 | 2000 | Thu Jun 09 2016 |完成 HR | 06/08/2016 | 1000 | Thu Jun 09 2016 | Complet e HR | 06/08/2016 | 3010 | Thu Jun 09 2016 |完成 HR | 06/08/2016 | 2000 | Fri Jun 09 2016 |完成 HR | 06/08/2016 | 1500 | Thu Jun 09 2016 |完整但我預期的o/p是:HR | 06/08/2016 | 3000 | Thu Jun 09 2016 |完成| 20160627020300 HR | 06/08/2016 | 3010 | Thu Jun 09 2016 |完成| 20160627070300 HR | 06/08/2016 | 1000 | Thu Jun 09 2016 |完成| 20160627020500 HR | 06/08/2016 | 1500 | Thu Jun 09 2016 |完成| 20160627090300。 – user2531569
對不起 - 它很難讀懂;你能描述一下這個問題嗎? –
您提供的代碼只是修改o/p中的最後一個字段(insertTimeStamp)。但我的要求是將file1中的第1行與file2中的第1行進行比較,並將文件1中的第2行與文件2中的第2行進行比較,等等。但在比較期間,它應該忽略最後一個字段(insertTimeStamp)。例如。儘管最後一個字段(insertTimeStamp)不同,但兩個文件中的記錄2都可以從o/p中免除。 – user2531569