アカデミック

【Pythonお悩み解決】深いところのファイル名まで取得したい。

この記事は, Pythonを利用して研究を行なっていく中で私がつまずいてしまったポイントをまとめていくものです。同じような状況で苦しんでいる方々の参考になれば嬉しいです。Pythonつまずきポイント集の目次は以下のページをご覧ください。

【超初心者お悩み解決】Pythonつまずきポイント記事まとめページこの記事は,Pythonを利用して研究を行なっていく中で私がつまずいてしまったポイントをまとめていくものです。同じような状況で苦しんでい...
本記事で紹介する解決策がBestという保証はできません。正確な情報を発信するように心掛けていますが図らずも誤った情報を記載してしまう場合があります。もしご指摘等がありましたら,コメント欄またはお問い合わせページよりご連絡下さい。

読みたい場所へジャンプ!

環境

●Ubuntu 16.04
●Python 3.7.3
●conda 4.7.12
●pytorch 1.2.0

 

現象

pythonであるディレクトリ内に存在するファイル名を取得する便利なメソッドは「glob」ですが,そのまま使うと深いところにあるファイル名までは取得できないのです。データセットなどを細かなディレクトリに分けている場合に,globで読み取ろうとすると何もファイル名が表示されません。困りました。

 

解決策

「**」を利用して「recursive=True」と設定する。

 

Before

l = glob.glob("~/datasets")

 

After

l = glob.glob("~/datasets/**", recursive=True)

 

ひとこと

例えばwavファイルだけを抽出したい場合は「glob.glob(“~/datasets/**/*.wav”)」とすることで,カレントディレクトリ以下の全てのwavファイル名を抽出することができます。

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です