導讀
今天使用 python 隨手寫了一個簡單的目錄文件差異比較工具,現在分享給大家。
特點
根目錄及其子目錄的所有文件均納入比較的範疇。
用法
新建一個 main.py 文件,然後寫入下方代碼到文件中:
# !/usr/bin/python3
# coding: utf-8
import os
import optparse
def compare(dir_1, dir_2):
dir_1_files, dir_2_files = [], []
for root, dirs, files in os.walk(dir_1): # 迭代遍歷 dir_1 文件
for file in files:
dir_1_files.append(os.path.join(root, file))
for root, dirs, files in os.walk(dir_2): # 迭代遍歷 dir_2 文件
for file in files:
dir_2_files.append(os.path.join(root, file))
fp = open('./file_compare_result.txt', 'w')
fp.write('\ndir_1 比 dir_2 多的文件,詳情如下:\n')
for file in dir_1_files:
if file not in dir_2_files:
fp.write(file)
fp.write('\n')
fp.write('\ndir_2 比 dir_1 多的文件,詳情如下:\n')
for file in dir_2_files:
if file not in dir_1_files:
fp.write(file)
fp.write('\n')
if __name__ == "__main__":
parser = optparse.OptionParser()
parser.add_option("-s", "--source", dest="source", help="源文件路徑")
parser.add_option("-d", "--destination", dest="destination", help="目標文件路徑")
options, args = parser.parse_args()
try:
compare(options.source, options.destination)
print('比較完成,結果輸出在當前路徑下的 file_compare_result.txt 文件中.')
except:
print('輸入有誤,請檢查輸入。')
保存文件後,使用 python3 main.py -s 源目錄 -d 目標目錄
指令執行比較,如下示例:
比較後的輸出結果,存放在當前目錄的file_compare_result.txt
文件中,示例如下: