python

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

how to create all files list on python
プログラム女子
プログラム女子

ファイルの拡張子で検索することってできますか?

ファイル名の一部が分かっているファイルをすべて検索するってことだね。これはpythonのglobってライブラリの関数を使うとできるから、これを説明するね。

Tommy
Tommy

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

summary of creating all files list

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

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

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

environment of creating all files list

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

【python】バージョン確認の方法【→プログラミング初心者向け】

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

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

レンタルサーバでプログラミングする方法【→レンタルサーバでできる!】

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のその他「初心者向け」技術

other technique for python beginner

その他のpythonプログラムの「基礎知識」を下記の記事にまとめています。

どれもpythonの文法というべき、基本的なものばかりで、これから「pythonでプログラムを学びたい」という人は、「知っておいて方がよいもの」ばかりです。

私は、「プログラム」は「動いて」こそ価値ががあると考えています。 もともと、「プログラムを学ぶ」というのは、「自分が意図した動作をプログラムにさせるようになる」ということだと思います。 つまり、プログラムを自分の意図通りに動かして、初めて「学べた」と言えるということです。

しかし、実際に手で書いて動かしてみないと「学べない」ことがあります。 頭で理解したと思っても、いざプログラムを書こうとおもっても思い通りにいかない場合があるからです。 それには、プログラムを書く環境の問題だったり、pythonのバージョンが違ったり、ライブラリのバージョンが違ったり、いろいろな事情があります。

「頭で理解する」ことと「実際に動かす」ということは違うのです。 だから、プログラムを学ぶ時には実際にプログラムを書いて「動かしてみる」ことを強くおすすめします。

それぞれの記事には、実行可能なサンプルプログラムを掲載しています。 記事を読んで、実際に自分で書いてみてプログラムの動作をご自身で確認することができます。 是非、下記の記事を読んで、「知識」としてだけではなく、「手」でpythonを覚えていってください。

【python】初心者向けおすすめ記事まとめ【pythonの文法をマスターする!】

-python
-, ,

Copyright© Tommy's blog , 2020 All Rights Reserved Powered by AFFINGER5.