python

【python】全てのファイルのリストを作成する【→プログラム初心者向け】

11月 26, 2019

how to create all files list on python
プログラム学生
ファイルの拡張子で検索することってできますか?
ファイル名の一部が分かっているファイルをすべて検索するってことだね。これはpythonのglobってライブラリの関数を使うとできるから、これを説明するね。
Tommy

pythonで全てのファイルのリストを作成する概要

summary of creating all files list

この記事では、pythonでを使って、全てのフォルダ、ファイルのリストを作成する方法を説明します。

また、特定の文字で始まるファイルや、特定の文字で終わるファイル名など、作成したい文字が含まれているファイルだけをリスト化することができます。

pythonで全てのファイルのリストを作成する前提の環境

environment of creating all files list

pythonで特定のファイルを再帰的に検索する前提の環境は、下の記事で説明している私の環境と同じ環境で確認しています。

オススメ
how to check version in python
【python】バージョン確認の方法【→プログラミング初心者向け】

続きを見る

レンタルサーバなどのLinuxサーバを使っている場合は、下の記事でプログラミングする環境の作り方を説明しています。

もし、まだプログラムする環境ができていない方は、先にこちらの記事を読んで、プログラミングできる環境をつくることをおすすめします。

オススメ
how to programming on rental server
レンタルサーバでプログラミングする方法【→ブログのサーバでできる!】

続きを見る

pythonで全てのファイルのリストを作成するサンプルプログラム

sample program of creating all files list

ここでは、カレントディレクトリの配下のフォルダや指定された名前のファイルをすべて取得するサンプルプログラムを書いていきます。

ライブラリのインポート

指定ディレクトリの中身をフォルダとファイルに仕分けしてくれるwalkとよばれるosライブラリのメソッドを利用する為に、osライブラリをインポートしています。

指定ディレクトリのファイルをワイルドカードを用いて取得できるglobと呼ばれるメソッドを使う為にライブラリglobをインポートしています。

import os
import glob

全てのフォルダパスを返す関数の定義

全てのフォルダパスを返す関数find_all_dirs()を定義しています。

def find_all_dirs(directory):
	for cur_dir, dirs, files in os.walk(directory):
		yield cur_dir

globの使用したファイルリスト化

find_all_dirs()で得られたディレクトリのリストに対して、「file」と名前の付くファイルだけのパスを取得して表示しています。

globは引数に、フォルダパスやファイル名を入力すると、リスト形式で返してくれる関数です。

このサンプルプログラムでは、「dir+'/'+'file*'」と入力していますが、find_all_dirsで得られたフォルダパスの下のファイルの名前の先頭が「file」であるファイルだけをリスト形式で返すようにしています。

if __name__ == '__main__':
	for dir in find_all_dirs('./'):
		for file in glob.glob(dir+'/'+'file*'):
			print(file)

プログラム実行の結果

下記が実行結果です。

カレントディレクトリ配下にはfile1とfile2というファイルと、dir1といフォルダがあり、dir1の下にはfile3とfile4というファイル、dir2というフォルダ、さらに、dir2フォルダの中にはfile5とfile6というファイルがあることが分かります。

$python test.py
./file2
./file1
./dir1/file3
./dir1/file4
./dir1/dir2/file6
./dir1/dir2/file5

-python
-

© 2020 Tommy's blog Powered by AFFINGER5