2017-04-12 11 views
0

Pythonのglobモジュールは、glob式に一致するすべてのファイルとディレクトリに一致します。ドキュメントによれば、内部ではos.listdir()fnmatch.fnmatch()を使用して実装されています。Pythonのglobモジュールに相当する正規表現はありますか?

グロブを使用するのではなく、正規表現に一致するモジュールまたは機能はありますか?

+0

確かに、python re moudle。 – valex

+1

それは部分的に正しいですが、 'os.walk'(警告:それはリストを返さない)でパス名リストを構築し、次にすべての項目に' re.match'を付けなければなりません。 –

+0

@KaeptmBlaubaer何とかOSを見逃しました。 walk()メソッド。すべてのファイルとサブディレクトリは正規表現に部分的に一致するサブディレクトリだけに制限するのではなく、一致するかどうかに関係なく、横断されるため、re.matchを使ってos.walk()を実行しても間違いなく効率的です。これは、globがos.list()をos.walk()を使用する代わりに使用する理由だと思います。 – ranban282

答えて

2

ないモジュールが、ファイルは正規表現を使用して名前を変更するん可能なスクリプトがあります、here.

は明らかに、これは正規表現に基づいてマッチングを行うためのコードを持っています。あなたは、コードとのマッチオンリーインターフェイスを取得する方法については、著者に連絡してください。

+0

ありがとう、これはほとんど動作します。私は、ディレクトリをスキャンし、サブディレクトリに対して部分(接頭辞)マッチを実行するためのテスト済みコードを望んでいました。 os.walk()とre.match()を使ったKaeptm Blaubaerのメソッドもうまくいくが、非効率的である可能性が高い。 – ranban282

関連する問題