Python之difflib文件对比及sys模块
一、文件的对比difflib模块为python的标准库模块,无需安装。作用时对比文本之间的差异。并且支持输出可读性比较强的HTML文档,与linux下的diff命令相似,在版本控制方面非常有用'+' 包含在第二个系列行中,但不包含第一个'-' 包含在第一个系列行中,但不包含第二个' ' 两个系列行一致'?' 存在增量差异'^' 存在差异字符import difflib...
·
一、文件的对比
difflib模块为python的标准库模块,无需安装。作用时对比文本之间的差异。并且支持输出可读性比较强的HTML文档,与linux下的diff命令相似,在版本控制方面非常有用
- '+' 包含在第二个系列行中,但不包含第一个
- '-' 包含在第一个系列行中,但不包含第二个
- ' ' 两个系列行一致
- '?' 存在增量差异
- '^' 存在差异字符
import difflib
text1 = ''' 1. Beautiful is better than ugly.
2. Explicit is better than implicit.
3. Simple is better than complex.
4. Complex is better than complicated.
'''.splitlines(keepends=False) #不保留换行符
text2 = ''' 1. Beautiful is better than ugly.
3. Simple is better than complex.
4. Complicated is better than complex.
5. Flat is better than nested.
'''.splitlines(keepends=True)
#方法一:直接对比
d = difflib.Differ()
print(''.join(d.compare(text1,text2)))
#方法二:生成网页文件
d = difflib.HtmlDiff()
htmlContent = d.make_file(text1,text2)
with open('diff.html','w') as f: #生成网页文件
f.write(htmlContent)
方法一:显示结果
方法一的对比效果不明显,提倡用生成网页文件的方式对比
方法二显示效果如下
linux文件对比
import difflib
filename1 = '/tmp/passwd'
filename2 = '/tmp/passwd1'
with open(filename1) as f1,open(filename2) as f2:
content1 = f1.read().splitlines(keepends=True)
content2 = f2.read().splitlines(keepends=True)
d = difflib.HtmlDiff()
htmlContent = d.make_file(content1,content2)
with open('passwdDiff.html','w') as f:
f.write(htmlContent)
二、sys模块
sys模块:system,接收操作系统调用解释器传入的参数
1.获取脚本名称
import sys
print(sys.argv) #获取脚本名称
print(sys.argv[0])
2. 获取python版本
import sys
print(sys.version)
判断程序运行在什么python版本
if sys.version[0] == '2':
print('running in python2...')
elif sys.version[0] == '3':
print('running in python3')
3. 查看系统路径
import sys
print(sys.path)
4. 查看平台
import sys
print(sys.platform)
latform == 'linux':
os.system('ifconfig')
else:
os.system('ipconfig')
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献1条内容
所有评论(0)