1ヶ月でWebデザイン・プログラミングスキルをオーダーメイドのカリキュラムで学べるスクール、それがWebCamp。

【Python入門】listdir関数でデータを取得する方法

【Python入門】
Pocket

Pythonでは特定のファイルを読み込んでデータを取得することができます。直接ファイル名を打ち込んでもいいですが、ファイル一覧を取得して、プログラム内でファイルを選択する、といったことが必要な時があります。その場合は、listdir関数を使うことでディレクトリ(フォルダ)やファイルの一覧を簡単に取得することができます。

今回は、listdir関数を使ったディレクトリとファイル一覧やパスの取得方法を解説します。

listdir関数でディレクトリとファイルの一覧を取得する

Pythonでディレクトリとファイルの一覧を取得するにはlistdir関数を使います。listdir関数の構文は以下の通りです。

listdir関数はosという名前のモジュールの関数なので、listdir関数を使う場合は必ずインポートするようにしましょう。listdirの引数に、ディレクトリとファイル一覧を取得したいディレクトリのパスを渡すことで、そのディレクトリ内にあるディレクトリとファイルの一覧を取り出す事が出来ます。

実行結果

[‘Lib’, ‘python.exe’, ‘Readme.txt’, ‘Scripts’, ‘tcl’, ‘test.txt’]

lisdir関数と組み合わせて必要なものだけを取得する

listdir関数を使うと、指定したパスの中にあるすべてのフォルダとファイルの一覧を取得してしまいます。しかし、場合によってはディレクトリだけが欲しい場合や、逆にファイルだけが欲しい場合があります。そういった時は、指定したパスがディレクトリを指すのかファイルを指すのかを調べることができるisdirを併用することで実現できます。isdirの構文は以下の通りです。

isdirは引数で渡されたパスがディレクトリならTrueを返し、そうでないならFalseを返します。これをlistdirと共に使うことでディレクトリだけ、もしくはファイルだけの一覧を取得できます。

実行結果

[‘Lib’, ‘Scripts’, ‘tcl’]

まず、listdirでディレクトリとファイルの一覧を取得し、それをfor文で一つずつ取り出します。取り出したディレクトリ名、もしくはファイル名を元のパスの後ろに連結することで、そのディレクトリもしくはファイルのパスが作れます。

そのパスをisdirに渡せば、それがディレクトリかファイルかが分かります。この場合、isdirがTrueを返したものだけ、つまりディレクトリだけをリストに追加するようにしています。このif文を否定することで、逆にファイル文だけを取り出せます。

なお、isdirの代わりにisfileを使うと、逆にファイルだけを取り出す事が出来ます。

実行結果

[‘python.exe’, ‘Readme.txt’, ‘test.txt’]

glob関数でファイルを取得する

listdirとisdirおよびisfileを使うことで、ディレクトリおよびファイルの一覧を取得できるようになりました。しかし、さらに細かく指定してファイルを取得したいことがあります。
例えば、ファイルのうち、拡張子が.txtだけのものを取り出したい場合、取り出した後に文字列を操作しなければなりません。

実行結果

[‘Readme.txt’, ‘test.txt’]

しかし、この方法だとコードが複雑になりますし、拡張子によって長さも違うので毎回設定するのが面倒です。このような場合は、listdirの代わりにglob関数を使うとスッキリとします。globの構文は以下の通りです。

glob関数はglobモジュールの関数なので、必ずglobをインポートしましょう。glob関数も引数にパスを渡しますが、listdirと違い単体のディレクトリ名だけでなく単体のファイル名を入れることができます。
また、globの引数には任意の文字列を意味するワイルドカード(*)や正規表現が使えるので、特定のファイルだけを簡単に取得できます。

実行結果

[‘C:\\Python35\\Readme.txt’, ‘C:\\Python35\\test.txt’]

この例ではpathに「*.txt」を指定しているので、拡張子が.txtのファイルだけを取り出しています。glob関数を使えば、パスの指定方法を工夫することであらゆるパターンでファイルを取得できます。

おわりに

いかがでしたか。
どういった種類のディレクトリやファイルを取得するかによって、listdirとglobを使い分けるようにしましょう。

投稿者:プロスタ編集部

  • このエントリーをはてなブックマークに追加
  • follow us in feedly

おすすめスクール

全国30校舎で展開されるヒューマンアカデミーのWeb講座は修了者数4万人超、講師とカリキュラムの満足度がどちらも9割を超えています。就職や転職に必要なレベルの実務スキルを身に付けられます。

WebCampは、一ヶ月の短期集中でWebデザイン、プログラミングスキルを習得するスクールです。学習効果の高い反転授業(自主学習でインプット、講義でアウトプット)を採用し、年間1000名を輩出しています。

この記事が気に入ったら
いいね!しよう

プロスタの最新情報をお届けします

あわせて読みたい

関連記事

イチ押しランキング

1リナックスアカデミー

リナックスアカデミー

2システムアーキテクチュアナレッジ

システムアーキテクチュアナレッジ

3WEB塾

WEB塾
ページ上部へ戻る