下面是一个比较两个字符串并显示差异的示例代码:
from difflib import Differ
def compare_strings(string1, string2):
differ = Differ()
diff = list(differ.compare(string1.splitlines(keepends=True), string2.splitlines(keepends=True)))
for line in diff:
if line.startswith('- '):
print('\033[31m' + line.strip() + '\033[0m') # 红色表示删除的行
elif line.startswith('+ '):
print('\033[32m' + line.strip() + '\033[0m') # 绿色表示添加的行
elif line.startswith('? '):
print('\033[33m' + line.strip() + '\033[0m') # 黄色表示修改的行
else:
print(line.strip())
# 示例用法
string1 = '''Hello,
This is string 1.
It has multiple lines.'''
string2 = '''Hi,
This is string 2.
It also has multiple lines.'''
compare_strings(string1, string2)
此代码使用difflib
库中的Differ
类来比较两个字符串的差异。它将字符串拆分为行,然后使用compare
方法比较行。比较结果是一个包含差异行的列表。然后,我们遍历差异列表并使用不同的颜色来显示不同类型的差异:红色表示删除的行,绿色表示添加的行,黄色表示修改的行。其他行保持不变。
运行上述代码将输出类似于git diff
命令的结果:
- Hello,
+ Hi,
? +
- This is string 1.
+ This is string 2.
? +
- It has multiple lines.
+ It also has multiple lines.
上一篇:比较两个字符串并标记不同的单词
下一篇:比较两个字符串并返回不同的部分