Python100个库分享第4个—difflib

专栏导读

  • 🌸 欢迎来到Python办公自动化专栏—Python处理办公问题,解放您的双手

  • 🏳️‍🌈 博客主页:请点击——> 一晌小贪欢的博客主页求关注

  • 👍 该系列文章专栏:请点击——>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)
  • 输出,相似度 百分之63.6%

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))

总结

  • 希望对初学者有帮助

  • 致力于办公自动化的小小程序员一枚

  • 希望能得到大家的【一个免费关注】!感谢

  • 求个 🤞 关注 🤞

  • 此外还有办公自动化专栏,欢迎大家订阅:Python办公自动化专栏

  • 求个 ❤️ 喜欢 ❤️

  • 此外还有爬虫专栏,欢迎大家订阅:Python爬虫基础专栏

  • 求个 👍 收藏 👍

  • 此外还有Python基础专栏,欢迎大家订阅:Python基础学习专栏

相关推荐

  1. Python100分享4difflib

    2024-03-31 12:06:01       19 阅读
  2. Python100分享1—Chardet

    2024-03-31 12:06:01       18 阅读
  3. Python Difflib

    2024-03-31 12:06:01       35 阅读
  4. 100python代码(三)

    2024-03-31 12:06:01       17 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-31 12:06:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-31 12:06:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-31 12:06:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-31 12:06:01       20 阅读

热门阅读

  1. Golang基础-7

    2024-03-31 12:06:01       16 阅读
  2. C# serialPort

    2024-03-31 12:06:01       16 阅读
  3. Python 变量、数据类型、数据类型的转换介绍

    2024-03-31 12:06:01       15 阅读
  4. zookeeper--znode数据结构详解

    2024-03-31 12:06:01       16 阅读
  5. 大AI与小AI盈利点在哪里?AI积木与图谱视角

    2024-03-31 12:06:01       14 阅读
  6. TYPORA笔记

    2024-03-31 12:06:01       19 阅读
  7. Concul 配置中心 微服务的配置

    2024-03-31 12:06:01       16 阅读
  8. python 报错问题汇总

    2024-03-31 12:06:01       21 阅读
  9. K8S 运维管理

    2024-03-31 12:06:01       16 阅读
  10. 基于UDP的可靠传输协议QUIC协议

    2024-03-31 12:06:01       14 阅读
  11. AtCoder_ABC130_Rectangle Cutting

    2024-03-31 12:06:01       13 阅读