問題タブ [difflib]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
2594 参照

python - Difflib.SequenceMatcher isjunkオプションのパラメータクエリ:空白、タブ、空の行を無視する方法は?

Difflib.SequenceMatcherを使用して、2つのファイル間の類似性を計算しようとしています。これらの2つのファイルは、1つに余分な空白、空の行が含まれ、他のファイルには含まれないことを除いて、ほとんど同じです。使用しようとしています

この目的のために。

したがって、問題は、このisjunkメソッドのラムダ式をどのように記述してSequenceMatcherメソッドがすべての空白、空の行などを割り引くかです。パラメーターlambda x:x == ""を使用しようとしましたが、結果はそうではありません。素晴らしい。よく似た2つのテキストの場合、比率は非常に低くなります。これは非常に直感的ではありません。

テストの目的で、テストに使用できる2つの文字列を次に示します。

jwovuがあなたの仕事をうまくやる動機は何ですか?OK、これは私が読んでいないという事実にもかかわらず、100ドル相当のソフトウェア開発の本を獲得しようとしているエントリです

プログラミングの本。賞品を獲得するには、エントリーと
、fggmumが仕事を上手くやる動機を書く必要があります。したがって、この投稿。最初の動機

お金。これは多くの人にとって大きなインスピレーションのようには思えません。お金がモチベーションの要因の1つであると言うことは、私のチャンスを吹き飛ばすかもしれません。

まるでお金がプログラミングの世界ではタブーであるかのように。お金でやる気が出ない人もいると思います。一方、Mmeは現実の世界に住んでいます。

住宅ローンを支払い、私自身が食事をし、請求書をカバーします。ですから、私は自分の検討からお金を本当に除外することはできません。のために多額のお金を得ることができれば

良い仕事をして、それから間違いなく私の士気を高めます。古いワークステーションを使用しているのか、部屋やキュービクルを他の人と共有することを余儀なくされているのかは気にしません

人々、または迷惑な上司、または何でも我慢する必要があります。一日の終わりに私がたくさんのお金を持って立ち去るという事実自体で十分です

私がすべての障害を克服し、すべての困難な感情に耐え、エゴを傷つけ、遅いコンピューターに耐え、さらには耐えることができるように

そして、ここに別の文字列があります

仕事を上手くやる動機は何ですか?OK、これは私がプログラミングの本を読んでいないという事実にもかかわらず、100ドル相当のソフトウェア開発の本を獲得しようとしているエントリです。賞品を獲得するには、エントリーを作成し、仕事を上手くやる動機を説明する必要があります。したがって、この投稿。

最初の動機、お金。これは多くの人にとって大きなインスピレーションのようには思えません。お金がモチベーションの要因の1つであると言うことは、私のチャンスを吹き飛ばすかもしれません。まるでお金がプログラミングの世界ではタブーであるかのように。お金でやる気が出ない人もいると思います。彼らへの称賛。一方、私は現実の世界に住んでおり、住宅ローンを支払い、自分自身を養い、請求書をカバーしています。ですから、私は自分の検討からお金を本当に除外することはできません。

良い仕事をするために多額のお金を稼ぐことができれば、それは間違いなく私の士気を高めるでしょう。古いワークステーションを使用しているのか、部屋やキュービクルを他の人と共有することを余儀なくされているのか、迷惑な上司に我慢しなければならないのか、などは気にしません。一日の終わりに私がたくさんのお金を持って立ち去るという事実は、私がすべての障害を克服し、すべての困難な感情に耐え、エゴを傷つけ、遅いコンピューターに耐え、さらには耐えるのに十分です

上記のコマンドを実行し、isjunkをlambda x:x==""に設定しました。比率はわずか0.36です。

0 投票する
5 に答える
82148 参照

python - Pythonでdifflibを使用して2つの.txtファイルを比較する

2つのテキストファイルを比較して、一致しない最初の文字列を比較ファイルに出力しようとしていますが、Pythonを初めて使用するため、問題が発生しています。このモジュールの使用例を教えてください。

私が次のようなことを試みるとき:

タイプ'file'のオブジェクトにlenがないというエラーが表示されます。

0 投票する
2 に答える
1808 参照

python - Python SequenceMatcher のオーバーヘッド - 100% の CPU 使用率と非常に遅い処理

difflib を使用して、2 つのディレクトリ (連続した年のバージョン) 内のファイルを比較しています。まず、filecmp を使用して変更されたファイルを見つけ、次に difflib.SequenceMatcher を繰り返し使用してそれらを比較し、ここで説明されているように html diff を生成しています。

しかし、プログラムの実行に時間がかかりすぎており、Python が 100% の CPU を使用していることがわかりました。時間プロファイリングで、seqm.get_opcodes()呼び出しに常に時間がかかっていることがわかりました。

任意の洞察をいただければ幸いです。ありがとう !

コード:

0 投票する
3 に答える
914 参照

python - ドキュメントがPythonと異なる場所を特定する

私はPythondifflibライブラリを使用して、2つのドキュメントが異なる場所を見つけています。Differ()。compare()メソッドはこれを実行しますが、非常に低速です。大きなHTMLドキュメントの場合、diffコマンドと比較して少なくとも100倍遅くなります。

Pythonで2つのドキュメントがどこで異なるかを効率的に判断するにはどうすればよいですか?(理想的には、SequenceMatcher()。get_opcodes()が返す実際のテキストではなく、位置の後にあります。)

0 投票する
6 に答える
19883 参照

python - Pythonでの差分の生成と適用

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

テキストの改訂履歴を保持したいのですが、編集した行が1つしかない場合は、改訂ごとにテキスト全体を保存したくありません。difflibを見ましたが、編集された行だけのリストを生成する方法がわかりませんでした。このリストを使用して、一方のテキストを変更してもう一方のテキストを取得することができます。

0 投票する
3 に答える
12826 参照

python - Python Difflib デルタと Ndiff の比較

私は、変更管理システムが行うと信じているようなことをしようとしていました.2つのファイルを比較し、ファイルが変更されるたびに小さな差分を保存します。私はこのページを読んでいます: http://docs.python.org/library/difflib.htmlそして、どうやら私の頭に沈んでいません。

以下に示すやや単純なプログラムでこれを再作成しようとしましたが、欠落しているように見えるのは、デルタに少なくとも元のファイルと同じくらい多くのものが含まれていることです。

純粋な変更だけに到達することはできませんか? 私が質問する理由は明らかです。ディスク容量を節約するためです。
毎回コードのチャンク全体を保存することもできますが、現在のコードを一度保存​​してから、変更の小さな差分を保存する方がよいでしょう。

また、多くの difflib 関数がリストではなくジェネレーターを返す理由を理解しようとしていますが、その利点は何ですか?

difflib は役に立ちますか? それとも、より多くの機能を備えたより専門的なパッケージを見つける必要がありますか?

ありがとう!

アップデート:

----- コンテキスト差分を表示 -----




* 5,9 **

  • print "j=" + j

    「XYZ」を印刷

--- 5,9 ----

  • 「終わり」を印刷する

別の更新:

メインフレーム用のソース管理ツールである Panvalet an Librarian の昔は、次のような変更セットを作成できました。

これは単純に、9 行目の後に 1 行 (複数行) を追加することを意味します。次に、++REPLACE や ++UPDATE などの単語を追加します。 http://www4.hawaii.gov/dags/icsd/ppmo/Stds_Web_Pages/pdf/it110401.pdf

0 投票する
2 に答える
55406 参照

python - SequenceMatcherを使用して2つの文字列間の類似性を見つける方法は?

上記のコードを使用しましたが、得られた出力は0.0です。どうすれば有効な答えを得ることができますか?

0 投票する
2 に答える
1410 参照

python - difflib を使用して剽窃検出プログラムを作成できますか?

私はこれを理解しようとしています...

difflib.*Python のライブラリを使用して、ある種の盗作検出プログラムを作成できますか? もしそうなら、どのように?

たぶん、誰かがこの質問を理解するのを手伝ってくれるでしょう。

0 投票する
1 に答える
2430 参照

python - difflib モジュールによる python のリストの比較

difflib ライブラリを試しています。文字列を含む L_1 と L_2 の 2 つのリストがあります。それらのシーケンスが類似しているかどうかを知りたいです (順序は重要ではありません)。

大丈夫なはず。しかし

大丈夫ではないはずです。

最初のリスト L_1 を反復処理し、メソッドによって L_1 のすべての要素を一致させるというアイデアを思いつきました

2 番目のリスト L_2 に対して。より大きな比率の一致があった場合、0.7 としましょう。L_2 からそれを削除して続行します。しかし、私はそれが良い計画であることを疑います。より良いものはありますか?

0 投票する
1 に答える
574 参照

python - Pythonを使用したユニコードによるXMLの差分

2 つの XML の違いを視覚化できる Web ツールを作成しようとしています。difflib違いのある html を作成する際にかなりうまく機能していましたが、一部の Unicode テキストが XML に表示され、結果の html には html でエンコードされた文字が含まれるようになりました。

この問題に対する他のアプローチはありますか?