3

いくつかの自律的なコンポーネントを持つプロジェクトを作成しようとしています。これらの 1 つは、2 つのフォルダーを比較し、異なるファイルを文字列の配列に吐き出す必要があることです。Dircmp はこれの一部を行います - それは異なるファイルを吐き出します。しかし、実際には、別のフォルダー内の同じファイルと比較したときにどのファイルが異なるかを確認するために、残りのファイルにはアクセスしていないように見えます。

現在、私は difflib と filecmp で遊んでいますが、完全に間違ったことをしていない限り、すべてをゼロから作成しないと、探しているものを達成する方法を見つけることができません。これが必要な理由は、この python スクリプトが、標準の Linux diff ツールが利用できない Windows boxen に展開されるためです。

私の他の唯一の考えは、コマンドラインから diff などを呼び出すことですが、それは私の問題のどちらも解決しません(配列内のファイルを取得し、GNU ツールを必要としません)。

誰でも私を助けることができますか?私はまだPythonの完全なスクラブであり、専門家のアドバイスを本当に感謝しています. ありがとうございました!

4

1 に答える 1

7

それはfilecmp.dircmpあなたがすでに望んでいることをしているようです。2 つのディレクトリを比較するdiff_filesと、両方のディレクトリにあるが内容が異なるファイルのリストになります。

>>> dc = filecmp.dircmp('dir1', 'dir2')
>>> dc.diff_files
<<< ['foo']

Jonathanbが指摘したように、実際の差分が必要な場合はdifflib、この時点で簡単に使用できます。

于 2011-08-18T01:55:46.527 に答える