Pythonで指定したディレクトリの中を再帰的にdiff
Pythonで、指定した二つのフォルダの中身を全部比較して変更されたところを表示するスクリプトを書いてみましたが、diffに-rというずばりそういうことをするためのオプションがありましたorz
とりあえず、なんかの参考になるかも知れないので載せておきます。あと、これは「新しいプロジェクト」ディレクトリ内になくて「古いプロジェクト」ディレクトリ内にあるファイルは無視します。僕はそれでよかったので。diff -rの挙動がどうなのかは調べていません。
# # diff between old project and new project # import difflib, os, sys diff = difflib.Differ() OLD_PATH = r"C:\Home\workspace\rel-visualizer\GRINEditAlpha\src" NEW_PATH = r"C:\Home\workspace\grinedit-app\src\main\java" def getNewPath(path): return os.path.join(NEW_PATH, path) def getOldPath(path): return os.path.join(OLD_PATH, path) for (root, dirs, files) in os.walk(NEW_PATH): p = root[len(NEW_PATH)+1:] for filename in files: path = os.path.join(p, filename) data = os.popen(r"c:\cygwin\bin\diff %s %s" % ( getOldPath(path), getNewPath(path))).read() if data != "": print path print data