python 文件内容对比_用python进行文件比对
文件内容差异对比
通过difflib模块实现文件内容差异对比,difflib 作为 python 的标准库模块,无需安装,作用是对比文件之间的差异,且支持输出可读性较强的 HTML 文档,与 Linux 下的 diff 命令相似。我们可以使用 difflib 对比代码,配置文件的差别,在版本控制方面有奇效
这次的演示比较简单,我们来进行两个字符串的比较import difflib
textStr1 = """this module provide class and function for compute,
'include html and test file .version 7.8"""
textStr2 = """this module provide class and function for compute,
'include html and test file .version 7.9"""
text1_line = textStr1.splitlines()
print(text1_line)
这里我们定义了两个字符串,只有版本号不同,我们采用字符串提供的splitlines()函数对第一个字符串进行处理,先打印出来看看是什么:
运行结果:['this module provide class and function for compute,', " 'include html and test file .version 7.8"]
可以看出,这个函数把我们的字符串按行拆开存储在一个 list 里
我们对两个字符串都进行相同的处理:text2_line = textStr2.splitlines()
然后我们就可以进行差异比较了,我们先调用一下 difflib 提高的一个构造函数去生成一个差异比较类,方便我们的后续工作:d = difflib.Differ()
有了这个 d, 我们就可以调用里面的 compare 方法,去比较我们刚刚生成的text1_line和text2_linediff = d.compare(text1_line,text2_line)
print('\n'.join(list(diff)))
运行结果:this module provide class and function for compute,
- 'include html and test file .version 7.8
? ^
+ 'include html and test file .version 7.9
? ^
可以很明显的看到,8 和 9 的下方都出现了一个小尖角,来表明它们是不同的
应用:接收两个文件名,比对它们的差异import difflib
import sys
def readFile(f):
fileopen = open(f,'rb')
text = fileopen.read().splitlines()
re = []
for i in text:
re.append(i.decode("utf-8"))
fileopen.close()
return re
if __name__ == '__main__':
# noinspection PyBroadException
try:
textfile1 = sys.argv[1]
textfile2 = sys.argv[2]
except:
print("Error argv")
sys.exit()
text_file1 = readFile(textfile1)
text_file2 = readFile(textfile2)
d = difflib.Differ()
res = d.compare(text_file1,text_file2)
print('\n'.join(list(res)))
使用方法:
将以上程序命名为main.py并保存,然后在终端中输入:python main.py [文件名1] [文件名2]
扩展:使用pyinstaller将其打包为可执行文件,提高可用性
python 文件内容对比_用python进行文件比对相关推荐
- python实习内容过程_「Python实践」学习之路
一.列表内容对比 方式一: import operator l1 = ['a','b','c'] l2 = ['a','d','e'] print(operator.lt(l1,l2)) 运行结果为T ...
- php 文件内容对比,php 比较两个文件是否相同
-### php比较两个文件是否相同 小一点的文件直接实用内置函数就可以了 function md5_files($filename,$filename1){ $file1 = md5_file($f ...
- python如何读取文件内容求和_使用python对文件中的数值进行累加的实例
问题描述: 一个文件由若干条记录组成,记录的格式为:"num1 num2",有时候,需要统计文件中num1对应的num2的总值. 处理问题的思路 用传说中的python来处理,很方 ...
- truncate python是删除文件内容吗_在Python中操作文件之truncate()方法的使用教程
truncate()方法截断该文件的大小.如果可选的尺寸参数存在,该文件被截断(最多)的大小. 大小默认为当前位置.当前文件位置不改变.注意,如果一个指定的大小超过了文件的当前大小,其结果是依赖于平台 ...
- python 对比文件内容差异_使用Python来比较文件夹并提取差异部分
在客户那边建库,需要把几百个G几十万个文件导入到Oracle里,好不容易导完了才发现中间缺了好几大块数据,约有四分之一吧,郁闷得很. 数据是客户从第三方买的,据客户分析是拷贝过来的时候有部分数据漏掉了 ...
- python 爬虫框架对比_用Python写爬虫,用什么方式、框架比较好?
以前只写过很简单的Python爬虫,直接用内置库实现,有没有谁用Python爬过规模较大的数据,用的是什么方法? 还有,采用现有的Python爬虫框架,相比与直接使用内置库,优势在哪?因为Python ...
- python实习内容过程_对Python实习的简单分析,也许可以帮到你
昨天对实习僧抓取了90条Python实习的数据,今天做一个简单的分析. 因为实习僧网站上关于Python实习岗位太少,所以以下内容进仅供娱乐. 各个地点的平均日工资,南京竟然比上海还高.回去筛选一看, ...
- sudo修改文件夹名字_用 Python 高效智能管理文件夹
#「闪光时刻」主题征文 二期# 大家在写报告.写总结时,是否会先去翻一下以前写过的类似的东西?是否有看过比较好的文章,想保存时却为归类而纠结?是否电脑里的文件越来越多,想删掉一些却又舍不得?身处大数据 ...
- TortoiseGit 单文件版本对比_入门试炼_09
文章目录 一.单文件版本数据模拟 二.单文件版本对比 2.1. 查询单文件提交记录 2.2. 单文件版本之间差异对比 案例场景: 依次提交5次,推送远程,同一个文件5个版本之间的相互对比 一.单文件版 ...
- Shell sed命令,替换文件内容、替换目录下所有文件内容、读取文件内容
目录 替换文件内容 格式: 实例:将文件内的34:51替换为11:22 替换目录下所有文件内容 格式: 实例: 替换当前目录下内容有aaa的替换为bbb 读取文件内容 替换文件内容 格式: sed - ...
最新文章
- 【点播系列之一】关于阿里视频云点播解决方案,你想知道的都在这里!
- .Net Micro Framework研究—绘图
- lable标签的妙用
- Linux性能优化2.1 CPU性能统计信息
- c语言建立顺序表 存储并输出,请教数据结构课程中怎么建立顺序表,显示,输出,从头到尾详细点最好加讲解,希望大家能帮这个小忙...
- java strcpy,详解C语言中strcpy()函数与strncpy()函数的使用
- 通过NGINX location实现一个域名访问多个项目
- HTML5 兼容IE浏览器
- 区块连教程(一):前置知识-linux补充
- azure云数据库_如何使用SQL Data Sync同步Azure SQL数据库和本地数据库
- 一条能让 iPhone 崩溃的 app 通知信息
- 新手驾车操作指南[200P]
- 华三交换机链路聚合的几点思考
- ubuntu hashcat 安装
- CF赛后总结3:2021-07-22晚 HSSC21-22 div1+2 rating+219
- Java怎么除以2_哪个更好的选项用于将整数除以2?
- 遗传算法_粒子群算法优化支持向量机分类预测-附代码
- AP侧,BP侧如何理解?
- 推荐系统实战4——EasyRec 搭建DSSM召回模型实现CTR点击平台
- echarts折线图实现滑动平移,横坐标过多时隐藏部分横坐标,通过滑动平移显示隐藏的部分