比较内容
- 目标文件与源文件总行数对比
- 目标文件与源文件每行数据值对比
代码实现
def compare_data(data1, data2):
data1_total_line = 0
data2_total_line = 0
data1_list = []
data2_list = []
loss_line = 0
loss_data = []
diff_line = 0
diff_data_indata2 = []
data1_dict = {}
data2_dict = {}
with open(data1, 'r', encoding='utf-8') as file1:
line1 = file1.readlines()
for line in line1:
if line.strip():
data1_total_line += 1
data1_list.append(line.strip())
id1 = line.split('|')[0]
data1_dict[id1] = line.strip()
with open(data2, 'r', encoding='utf-8') as file2:
line2 = file2.readlines()
for line in line2:
if line.strip():
data2_total_line += 1
data2_list.append(line.strip())
id2 = line.split('|')[0]
data2_dict[id2] = line.strip()
loss_line = abs(data2_total_line - data1_total_line)
for i in data1_list:
if i not in data2_list:
loss_data.append(i)
for k, v in data2_dict.items():
if k not in data1_dict.keys() or data1_dict[k] != v:
diff_line += 1
diff_data_indata2.append(v)
print("data1_total_line: " + str(data1_total_line))
print("data2_total_line: " + str(data2_total_line))
print("loss_line: " + str(loss_line))
print("diff_line: " + str(diff_line))
with open("loss_data.txt", 'w', encoding='utf-8') as lossdata:
for i in loss_data:
if i == loss_data[-1]:
lossdata.writelines(i)
else:
lossdata.writelines(i + '\n')
with open("diff_data_indata2.txt", 'w', encoding='utf-8') as diffdata:
for i in diff_data_indata2:
if i == diff_data_indata2[-1]:
diffdata.writelines(i)
else:
diffdata.writelines(i + '\n')
compare_data(r'D:\pythonProjects\section\requests\data_10.txt', r'D:\pythonProjects\section\requests\data_11.txt')
测试数据构造
def make_txt(total_line, num):
with open(r'D:\pythonProjects\section\requests\data_' + str(num)+".txt", 'w', encoding='utf-8') as txtfile:
for i in range(total_line):
tmp = [str(j) for j in range(num)]
line = '|'.join(tmp)
if i == total_line - 1:
txtfile.writelines(str(i)+'|'+line)
else:
txtfile.writelines(str(i)+'|'+line + '\n')
make_txt(100, 10)