专栏导读
-
🌸 欢迎来到Python办公自动化专栏—Python处理办公问题,解放您的双手
-
-
-
-
📕 此外还有python基础专栏:请点击——>Python基础学习专栏求订阅
-
文章作者技术和水平有限,如果文中出现错误,希望大家能指正🙏
-
❤️ 欢迎各位佬关注! ❤️
difflib的介绍
-
difflib是Python标准库中的一个模块,用于比较和处理文本之间的差异。它提供了一些函数和类,可以用于生成差异报告、计算相似度、查找最长公共子序列等操作。
安装
常见用法1:比较差异
import difflib
text1 = "hello world"
text2 = "hello there"
diff = difflib.ndiff(text1, text2)
print('\n'.join(diff))
常见用法2:比较文件的差异
import difflib
with open('file1.txt') as file1, open('file2.txt') as file2:
diff = difflib.ndiff(file1.readlines(), file2.readlines())
print('\n'.join(diff))
常见用法3:比较列表的差异
import difflib
list1 = ['apple', 'banana', 'cherry']
list2 = ['apple', 'banana', 'kiwi']
diff = difflib.ndiff(list1, list2)
print('\n'.join(diff))
常见用法4:比较字符串相似度
import difflib
text1 = "hello world"
text2 = "hello there"
similarity = difflib.SequenceMatcher(None, text1, text2).ratio()
print(similarity)
0.6363636363636364
常见用法5:获取两个字符串的相似块:
import difflib
text1 = "hello world"
text2 = "hello there"
blocks = difflib.SequenceMatcher(None, text1, text2).get_matching_blocks()
print(blocks)
[Match(a=0, b=0, size=6), Match(a=8, b=9, size=1), Match(a=11, b=11, size=0)]
常见用法6:获取两个字符串的最长公共子序列
import difflib
text1 = "hello world"
text2 = "hello there"
lcs = difflib.SequenceMatcher(None, text1, text2).find_longest_match(0, len(text1), 0, len(text2))
print(lcs)
Match(a=0, b=0, size=6)
import difflib
text1 = "hello world"
text2 = "hello there"
lcs = difflib.SequenceMatcher(None, text1, text2).find_longest_match(0, len(text1), 0, len(text2))
print(text1[lcs.a: lcs.a + lcs.size])
hello
常见用法7:比较两个字符串,并返回上下文差异
import difflib
text1 = "hello world"
text2 = "hello there"
diff = difflib.context_diff(text1, text2)
print('\n'.join(diff))
总结
-
希望对初学者有帮助
-
致力于办公自动化的小小程序员一枚
-
希望能得到大家的【一个免费关注】!感谢
-
求个 🤞 关注 🤞
-
-
求个 ❤️ 喜欢 ❤️
-
-
求个 👍 收藏 👍
-