Python 找到两个字符串的差异

Document 对象参考手册 Python3 实例

在 Python 中,我们可以使用 difflib 模块来比较两个字符串并找出它们之间的差异。difflib 模块提供了一个 Differ 类,它可以逐行比较两个字符串,并生成一个差异报告。

下面是一个示例代码,展示如何使用 difflib 来找到两个字符串的差异:

实例

import difflib

def find_string_differences(str1, str2):
    differ = difflib.Differ()
    diff = differ.compare(str1.splitlines(), str2.splitlines())
    return 'n'.join(diff)

str1 = """Hello world!
This is a test.
Python is fun."""


str2 = """Hello world!
This is a test.
Python is awesome."""


differences = find_string_differences(str1, str2)
print(differences)

代码解析:

  1. import difflib:导入 difflib 模块,该模块提供了用于比较序列的工具。
  2. differ = difflib.Differ():创建一个 Differ 对象,用于比较两个字符串。
  3. diff = differ.compare(str1.splitlines(), str2.splitlines()):使用 Differ 对象的 compare 方法来比较两个字符串的每一行。splitlines() 方法将字符串按行分割成列表。
  4. return 'n'.join(diff):将比较结果拼接成一个字符串并返回。
  5. str1str2:定义两个要比较的字符串。
  6. differences = find_string_differences(str1, str2):调用 find_string_differences 函数来获取两个字符串的差异。
  7. print(differences):打印差异结果。

输出结果:

  Hello world!
  This is a test.
- Python is fun.
+ Python is awesome.

输出结果中,- 表示第一个字符串中的内容,+ 表示第二个字符串中的内容。在这个例子中,Python is fun. 被替换为 Python is awesome.

Document 对象参考手册 Python3 实例