python csv 比較 - Pythonでdiffを生成して適用する



3 Answers

difflib.unified_diffはあなたが欲しいと思っていますか? here例がありhere

python ファイル比較

2つのテキスト間の相違点のリストを生成し、この差分を1つのファイルに適用してもう1つのファイルを取得するために、Pythonで「すぐに使える」方法がありますか?

テキストのリビジョン履歴を保存したいが、編集された行が1つしかない場合は、リビジョンごとにテキスト全体を保存したくない。 私はdifflibを見ましたが、他のテキストを取得するために1つのテキストを変更するために使用できる編集された行のリストを生成する方法はわかりませんでした。




それはPythonのソリューションでなければならないのですか?
解決策としての私の最初の考えは、バージョン管理システム(Subversion、Gitなど)またはunixシステムで標準であるdiff / patchユーティリティを使うか、Windowsベースのシステムのcygwin一部です。




おそらくunified_diffを使ってファイルの違いのリストを生成することができます。 ファイル内の変更されたテキストのみを新しいテキストファイルに書き込んで、後で参照するために使用することができます。 これは、新しいファイルに差分のみを書き込むのに役立つコードです。 私はこれがあなたが求めているものだと願っています!

diff = difflib.unified_diff(old_file, new_file, lineterm='')
    lines = list(diff)[2:]
    # linesT = list(diff)[0:3]
    print (lines[0])
    added = [lineA for lineA in lines if lineA[0] == '+']


    with open("output.txt", "w") as fh1:
     for line in added:
       fh1.write(line)
    print '+',added
    removed = [lineB for lineB in lines if lineB[0] == '-']
    with open("output.txt", "a") as fh1:
     for line in removed:
       fh1.write(line)
    print '-',removed 

差分出力のみを保存するには、これをコードで使用してください。




Related