一、文件的对比

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

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐