1. 程式人生 > >比較兩個.py指令碼的差別

比較兩個.py指令碼的差別

問題:

  • 如何顯示兩個python指令碼的差別
# fib_version_1.py
def fib(n):
    if n <= 1:
        return n, 1
    else:
        a, b = fib(n-1)
    return a+b, a
    
def print_fib(n):
    for i in range(n):
        print(fib(i))

print_fib(10)
# fib_version_2.py
def fib(n):
    if n <= 1:
        return
1 else: result = fib(n-1) + fib(n-2) return result for i in range(10): print(fib(i))

解決方法:

  • 內建的difflib模組,很多相關類及函式,如:HtmlDiff()類
import difflib
file_1=open('fib_version_1.py','r',encoding='utf-8').readlines()
file_2=open('fib_version_2.py','r',encoding='utf-8').readlines(
) d=difflib.HtmlDiff() results=d.make_file(file_1,file_2) # 返回HTML形式的比較字串 with open('results.html','w') as file: file.write(results) # 將比較結果儲存在results.html檔案中

結果:
開啟結果results.html檔案:
在這裡插入圖片描述