2022-11-23

【備忘録】隠しファイルも検索 ~ Python

Python の glob モジュールを用いて glob.glob('path/**', recursive=True) のようにすると、特定のディレクトリ path に含まれるすべてのファイル、ディレクトリの一覧を取得できます。しかし .(ピリオド)で始まる隠しファイルは検索対象にならないということを知らずに、トラブルにハマってしまいました。

下記の OS 環境で動作確認をしています。

Fedora Linux 37 Workstation x86_64
Python 3.11.0

大きな変更を加えずに隠しファイルも検索する方法がないかと探したところ、glob.glob で「強制的」に隠しファイルも検索させる方法を紹介しているサイトがいくつも見つかりました。そのうち、解りやすいと感じたサイトを下記に紹介します。

では、フツーに隠しファイルも検索する方法は無いのかと探して見たところ、どうやら pathlib モジュールを利用するのが良さそうです。

冒頭で触れたトラブルでは、glob.glob で隠しファイルも検索させるための応急処置として、glob._ishidden = lambda x: False を利用しましたが、時間を見つけて pathlib モジュールを利用したやり方に書き換えるつもりです。

参考サイト

  1. glob --- Unix 形式のパス名のパターン展開 — Python 3 ドキュメント
  2. pathlib --- オブジェクト指向のファイルシステムパス — Python 3 ドキュメント

 

ブログランキング・にほんブログ村へ bitWalk's - にほんブログ村 にほんブログ村 IT技術ブログ オープンソースへ
にほんブログ村

オープンソース - ブログ村ハッシュタグ
#オープンソース



このエントリーをはてなブックマークに追加

0 件のコメント: