Python の glob モジュールを用いて glob.glob('path/**', recursive=True) のようにすると、特定のディレクトリ path に含まれるすべてのファイル、ディレクトリの一覧を取得できます。しかし .(ピリオド)で始まる隠しファイルは検索対象にならないということを知らずに、トラブルにハマってしまいました。
下記の OS 環境で動作確認をしています。
Fedora Linux 37 Workstation | x86_64 | |
Python | 3.11.0 |
大きな変更を加えずに隠しファイルも検索する方法がないかと探したところ、glob.glob で「強制的」に隠しファイルも検索させる方法を紹介しているサイトがいくつも見つかりました。そのうち、解りやすいと感じたサイトを下記に紹介します。
- python の glob.glob はドットファイルを処理しないので強制的に処理させるようにしてみる [2021-06-16]
では、フツーに隠しファイルも検索する方法は無いのかと探して見たところ、どうやら pathlib モジュールを利用するのが良さそうです。
冒頭で触れたトラブルでは、glob.glob で隠しファイルも検索させるための応急処置として、glob._ishidden = lambda x: False を利用しましたが、時間を見つけて pathlib モジュールを利用したやり方に書き換えるつもりです。
参考サイト
にほんブログ村
#オープンソース
0 件のコメント:
コメントを投稿