pythonを使ってフォルダの比較を行います.

1049 ワード

最近は小さなスクリプトを書きましたが、システムの救急箱を使ってスキャンして処理した後、処理後のサンプルと提供の基準を比較してサンプルと処理後のファイルを提供しました.私が書く脚本は救急箱を開けて、二つのファイルを比較して起動してスキャンするのがより良いです.しかし、ファイルを比較する時、いくつかの回り道をしました.インターネットでpythonの標準倉庫にfilecmp類があります.この類はファイルやファイルと比較して、使いやすいfilecmpの公式文書です.
一番下の例のプログラムを使って、私はまたそれを拡充しました.目的は二つのフォルダを比較して、違うファイルを出力して、それぞれのフォルダにあるファイルを出力することです.
#coding:gbk
from filecmp import dircmp


def show_diff_files(dcmp):
    for name in dcmp.diff_files:
        print "diff_file %s found in %s and %s" % (name, dcmp.left,dcmp.right)
    for sub_dcmp in dcmp.subdirs.values():
        show_diff_files(sub_dcmp)
        
def show_only(dcmp):
    if dcmp.left_only:
        ave_rst = 1
        for i in dcmp.left_only:
            print "%s    %s "%(i,dcmp.left)
    if dcmp.right_only:
        for i in dcmp.right_only:
            print "%s    %s "%(i,dcmp.right)
    for sub_dcmp in dcmp.subdirs.values():
        show_only(sub_dcmp)

def compare(dir1,dir2):
    dcmp = dircmp(dir1,dir2)
    show_diff_files(dcmp)
    show_only(dcmp)