difflib
比较两文件差异
# -*- coding=utf_8 -*-
# --------------------------------------------
# 相对于difflib其他成员,
# 我比较习惯使用unified_diff
# 即 unified diff format
# --------------------------------------------
import difflib
import sys
# #比较两个字符串
# str1 = '''hello world!
# I am Bruce
# 2018.5.14
# '''.splitlines(keepends=True)
# str2 = '''Hello World!
# I am Bruce
# 2018/5/14
# '''.splitlines(keepends=True)
# diffresult = difflib.unified_diff(str1,str2)
# sys.stdout.writelines(diffresult)
def diff(file, file_patch):
# 用于比较的两个文件
# file = '01_urllib.py'
# file_patch = '01_urllib_2.py'
# 打开需要比较的文件
with open(file, encoding='utf-8') as f:
read_file = f.read()
f.close()
with open(file_patch, encoding='utf-8') as f:
read_file_patch = f.read()
f.close()
# ---------------------------------------
# unified_diff参数解析
# @param n 表示在生成diff文件中,内容不同行的
# 显示其上下相同内容多少行
# n = 0 表示不显示相同行
diffresult = difflib.unified_diff(read_file.splitlines(keepends=True), read_file_patch.splitlines(keepends=True),
fromfile=file, tofile=file_patch, n=0)
sys.stdout.writelines(diffresult)
if __name__ == "__main__":
if(len(sys.argv) == 3):
# 显示当前两个文件的比较结果
diff(sys.argv[1], sys.argv[2])
else:
print("Usage: 08_difflib.py fromfile tofile")