python difflib详解_在 Python 中使用 difflib 比较字符串
用 Shell 写程序还是不方便,今天用 Python 把昨天写的 Bash 脚本重写了,遇到两个关于字符串的个小问题:
1、做个类似 diff 工具的效果,大致指出两个字符串的不同之处,这个可以用 difflib 模块解决。
!/usr/bin/python
import difflib
text1 = """http://www.vpsee.com is a website which is dedicated for
building scalable websites on cloud platforms. The keywords are: Linux, Mac,
Cloud Computing, C, Python, MySQL, Nginx, VPS, Performance, Scalability,
Architecture, ..., etc. Have fun!"""
text1_lines = text1.splitlines()
text2 = """http://VPSee.com is a website which is dedicated for
building scalable websites on cloud platforms. The keywords are: Linux, Mac,
Cloud Computing, C, Python, MySQL, Nginx, VPS, Performance, Scalability,
Programming, Optimisation, Architecture, ... , etc. Have fun !"""
text2_lines = text2.splitlines()
d = difflib.Differ()
diff = d.compare(text1_lines, text2_lines)
print '\n'.join(list(diff))
程序运行结果如下:
- http://www.vpsee.com is a website which is dedicated for
? ^^^^^^^
+ http://VPSee.com is a website which is dedicated for
? ^^^
building scalable websites on cloud platforms. The keywords are: Linux, Mac,
Cloud Computing, C, Python, MySQL, Nginx, VPS, Performance, Scalability,
- Architecture, ..., etc. Have fun!
+ Programming, Optimisation, Architecture, ... , etc. Have fun !
2、如何比较两个字符串,并且忽略大小写、空白字符、TAB 制表符、换行等。这个很容易解决,把字符串转换成小写后 split,然后以空格为分隔符 join 在一起。
#!/usr/bin/python
a = " \t\n\n a B C d\t\n\n\n"
b = "\t\t\n\n a b c D\n\n\n\n"
s1 = a.lower()
s1 = ' '.join(s1.split())
s2 = b.lower()
s2 = ' '.join(s2.split())
if s1 == s1:
print "=="
else:
print "!="
python difflib详解_在 Python 中使用 difflib 比较字符串相关推荐
- python argv 详解_对python中的argv和argc使用详解
主要问题 为什么argv中第一个,即index=0的内容就是文件名? python中argc是用什么实现的? 概念解释 argc:argument counter,命令行参数个数 argv:argum ...
- python语法详解_关于python:NLTK中解析的英语语法
是否有可以立即使用并可以在NLTK中使用的即用型英语语法? 我搜索了使用NLTK进行解析的示例,但似乎我必须在解析句子之前手动指定语法. 非常感谢! 您可以看一下pyStatParser,这是一个简单 ...
- python解释器详解_浅析Python解释器的设计(一)
一些铺垫(扯淡) 历史上,在Python 2.4以及之前的版本,py代码的执行,也就是从源码到bytecode分为两步: 解析py源码成为分析树 (Parser/pgen.c)基于分析树优化缩减byt ...
- pythondifflib详解_用python标准库difflib比较两份文件的异同详解
[需求背景] 有时候我们要对比两份配置文件是不是一样,或者比较两个文本是否异样,可以使用linux命令行工具diff a_file b_file,但是输出的结果读起来不是很友好.这时候使用python ...
- python中的super用法详解_【Python】【类】super用法详解
一.问题的发现与提出 在Python类的方法(method)中,要调用父类的某个方法,在Python 2.2以前,通常的写法如代码段1: 代码段1: class A: def __init__(sel ...
- python input函数详解_对Python3中的input函数详解
下面介绍python3中的input函数及其在python2及pyhton3中的不同. python3中的ininput函数,首先利用help(input)函数查看函数信息: 以上信息说明input函 ...
- python six模块详解_对python中的six.moves模块的下载函数urlretrieve详解
实验环境:windows 7,anaconda 3(python 3.5),tensorflow(gpu/cpu) 函数介绍:所用函数为six.moves下的urllib中的函数,调用如下urllib ...
- python协程详解_对Python协程之异步同步的区别详解
一下代码通过协程.多线程.多进程的方式,运行代码展示异步与同步的区别. import gevent import threading import multiprocessing # 这里展示同步和异 ...
- python之sys模块详解_(转)python之os,sys模块详解
python之sys模块详解 原文:http://www.cnblogs.com/cherishry/p/5725184.html sys模块功能多,我们这里介绍一些比较实用的功能,相信你会喜欢的,和 ...
最新文章
- tensorflow1.0中的改善
- python做好的程序如何变成小程序-使用python编写简单的小程序编译成exe跑在win10上...
- lock mysql unlock_MySQL中的lock tables和unlock tables
- 精讲23种设计模式-基于装饰模式~设计多级缓存框架
- n平方的求和公式_高中数学:数列求和及数列的综合应用,掌握常见模型
- 测测自己最像哪幅名画?谷歌博物馆App新推自拍功能
- manage.py和simplejson调用报错解决
- 关于电脑桌面图标消失并且右键无法点击的情况
- 「leetcode」C++题解:15.三数之和 /3Sum 方法1:哈希法,方法2:排序+双指针,详细注释
- iOS开发之字符串(NSString)的拼接
- 实例学习SSIS(三)--使用包配置
- 手把手教你 如何安装 Ubuntu(乌班图)
- 龙芯mips64 Javajdk下载
- 因为迁移,所以出卖(1)
- 最新计算机教育 小学教育,2017年小学计算机教学计划
- C# 导入EXCEL 报错外部表不是预期的格式错误
- 高效能人士的习惯.提炼一种高效能思维
- 修改uxtheme.exe ,打造自己的主题
- linux怎么用命令打开wine,Linux系统运维:10分钟教你如何使用Wine在Linux下玩魔兽世界...
- kali 2020 安装w3af
热门文章
- mysql 开源订阅模式_Canal(增量数据订阅与消费 )快速配置
- flask websocket json_Win10环境下使用Flask配合Celery异步推送实时/定时消息/2020年最新攻略...
- 家居海报PSD模板,是否也是你理想的生活!
- 新媒体配图不愁,超优质图片素材--素材路上!
- 双十一要来了,如何设计出那些牛X的促销页面?
- 设计师需要收藏|一起来看看UI设计的配色专辑
- mysql+影响的行数+获取_CI中获取读操作的结果集行数+获取写操作的影响行数
- Linux内存管理:知识点总结(ARM64)
- Vector Packet Processor(VPP) - 层二层三转发图谱
- X86 register