新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Python練習(xí)【7】【文件對(duì)比并輸出可讀性較強(qiáng)的html文件】
題目:
利用python寫出一個(gè)可在shell中執(zhí)行的命令mydiff,用于比對(duì)兩個(gè)文件之間的區(qū)別,輸出可讀性較強(qiáng)的html頁面源碼,可保存到html文件中進(jìn)行查看。
目前創(chuàng)新互聯(lián)建站已為近千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)頁空間、網(wǎng)站改版維護(hù)、企業(yè)網(wǎng)站設(shè)計(jì)、陜州網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
- 格式: mydiff file1 file2 [> save_file]
實(shí)現(xiàn):
- 1.利用sys.argv函數(shù)獲取從命令行輸入的參數(shù),用于傳遞參數(shù)
if len(sys.argv) !=3: # 如果參數(shù)數(shù)量不為3個(gè)輸出命令的使用提示 print(''' usage: {} file1 file2 [>] [file to save] '''.format(sys.argv[0])) else: # 當(dāng)輸入?yún)?shù)符合要求進(jìn)行比對(duì) ... ...
- 2.利用difflib.Htmldiff函數(shù)進(jìn)行比對(duì),并輸出可讀性較強(qiáng)的html頁面源碼
#sys.argv的后兩個(gè)參數(shù)為需要進(jìn)行比對(duì)的文件名
file1 = sys.argv[1]
file2 = sys.argv[2]
try:
with open(file1)as f1 ,open(file2)as f2: # 打開兩個(gè)文件
content1= f1.read().splitlines(keepends=True) # 讀取其中的文件
content2= f2.read().splitlines(keepends=True)
diff = difflib.HtmlDiff() # 創(chuàng)建工具對(duì)象
result =diff.make_file(content1,content2) # 獲取文件對(duì)比結(jié)果
print(result) # 輸出結(jié)果,可以看到html寫的源碼
except Exception as e: # 出現(xiàn)異常輸出提示
print('Error:'+e)
- 3.文件開頭注明解釋器位置和編碼格式
#!/usr/local/python3/bin/python3.6 #encoding=utf-8
完整代碼:
#!/usr/local/python3/bin/python3.6 #encoding=utf-8 import sys import difflib if len(sys.argv) !=3: # 如果參數(shù)數(shù)量不為3個(gè)輸出命令的使用提示 print(''' usage: {} file1 file2 [>] [file to save] '''.format(sys.argv[0])) else: # 當(dāng)輸入?yún)?shù)符合要求進(jìn)行比對(duì) file1 = sys.argv[1] file2 = sys.argv[2] try: with open(file1)as f1, open(file2)as f2: # 打開兩個(gè)文件 content1 = f1.read().splitlines(keepends=True) # 讀取其中的文件 content2 = f2.read().splitlines(keepends=True) diff = difflib.HtmlDiff() # 創(chuàng)建工具對(duì)象 result = diff.make_file(content1, content2) # 獲取文件對(duì)比結(jié)果 print(result) # 輸出結(jié)果,可以看到html寫的源碼 except Exception as e: # 出現(xiàn)異常輸出提示 print('Error:' + e)
- 4.將py文件拷貝至/usr/local/bin/中(此路徑已在環(huán)境變量中),并增加執(zhí)行權(quán)限。此時(shí)利用tab鍵補(bǔ)齊可以看到mydiff命令
- 5.測(cè)試命令,輸出了一個(gè)html編碼
- 6.重定向在桌面生成一個(gè)html文件(mydiff /etc/passwd /tmp/paswd > /home/kiosk/Desktop/diff.html)
- 7.利用瀏覽器打開,可以看到可讀性很強(qiáng)的html頁面
網(wǎng)頁名稱:Python練習(xí)【7】【文件對(duì)比并輸出可讀性較強(qiáng)的html文件】
本文路徑:http://www.ef60e0e.cn/article/ghosph.html