def diff_files(file1, file2, sep='>>>'):
"""
比较两个文件,输出从第一个分隔符开始的差异
Args:
file1 (str): 第一个文件的路径
file2 (str): 第二个文件的路径
sep (str): 分隔符,默认为 '>>>'
Returns:
list: 差异行组成的列表
"""
with open(file1, 'r') as f1, open(file2, 'r') as f2:
content1 = f1.read().split(sep)[-1] # 读取最后一个分隔符后的内容
content2 = f2.read().split(sep)[-1] # 读取最后一个分隔符后的内容
lines1 = content1.strip().split('\n')
lines2 = content2.strip().split('\n')
for i, (line1, line2) in enumerate(zip(lines1, lines2)):
if line1 != line2:
return lines1[i:], lines2[i:]
return [], []
# 使用示例
file1 = 'file1.txt'
file2 = 'file2.txt'
sep = '>>>' # 分隔符
diff1, diff2 = diff_files(file1, file2, sep)
print('file1 和 file2 的差异:')
print('file1:', '\n'.join(diff1))
print('file2:', '\n'.join(diff2))
假设 file1.txt
和 file2.txt
的内容如下:
file1.txt:
1
2
3
4
>>> # 分隔符
5
6
7
file2.txt:
1
2
4
>>> # 分隔符
5
6
8
输出结果:
file1 和 file2 的差异:
file1: ['3', '4', '>>> # 分隔符', '5', '6', '7']
file2: ['3', '5', '6', '8']