3

次のパターンを検討してください*.pypy拡張子で終わるすべてのパスに一致します。さて、他のすべてに一致するパターンを見つけることは可能ですか?

私はこれがそれを行うと思った: *[!.][!p][!y]、しかしどうやらfnmatch.fnmatch常にこれで返さFalseれます。

正規表現は避けたいです。それらを使用できることはわかっていますが、この場合は不可能です。

4

2 に答える 2

3

絶対に正しい唯一の答えは、不要なファイルのリストを生成し、このリストと完全な (フィルター処理されていない) ファイル リストとの違いを見つけることだと思います。set(この手法は、https://stackoverflow.com/a/8645326/1858225を使用して、ここで見ることができます)

fnmatchモジュール内の検索パターンを否定するための組み込みオプションはないようです。

文字単位の否定が機能しない理由の例については、user590028 の回答に対する私のコメントを参照してください。

于 2014-12-01T22:14:15.050 に答える