利用python編寫一個目錄文件差異比較工具

導讀

今天使用 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 文件中,示例如下:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章