下面的程序实现的两文件的自动比对。运行方式为:python 脚本名 file1_name file2_name。
1.支持文件作为参数。当文件个数不够时,会报错;
2.当两个文件包含的数据量不够时,程序会直接跳出,不支持数据比对;
3.当两文件不一样时,会显示具体哪一行不一样和两个不一样的数;
import sys
def read_file(file_name):
dt_list = []
f_id = open(file_name,'r')
while True:
line = f_id.readline()
line = line.strip()
dt_list.append(line)
if len(line) == 0:
break
f_id.close()
return dt_list
data_same_flag = 1
if len(sys.argv) < 2 :
print ('append argument please!')
else :
dt_list1 = []
dt_list2 = []
dt_list1 = read_file(sys.argv[1])
dt_list2 = read_file(sys.argv[2])
if len(dt_list1) != len(dt_list2) :
print("The number of the data is difference!")
sys.exit()
for i in range(len(dt_list1)-1) :
dt1 = int(dt_list1[i])
dt2 = int(dt_list2[i])
if dt1 != dt2 :
data_same_flag = 0
print ("%d: %s %s"%((i+1),dt_list1[i],dt_list2[i]))
if data_same_flag == 1 :
print("Compare Successfully!")