python

【python】ファイル検索を再帰的にする【→プログラム初心者向け】

how to search files recursively in python
プログラム女子
プログラム女子

いっぱいのフォルダやファイルの中から自分が思うファイルを検索したいんだけど...

多くのフォルダの中から、ファイルを「再帰的」に調べるってことだね。
pythonでは、フォルダを順番に調べていくしくみがあるから、今回はこれを紹介するね。

Tommy
Tommy

pythonでファイル検索を再帰的にする概要

summary of recursive file search

pythonプログラムを使って、あるフォルダの下にあるファイルを検索したい場合に、pythonではosライブラリというものを使って、フォルダの中身を再帰的に検索することができます。

「再帰的」というのは、1つのフォルダを調べるだけでなく、フォルダの中にあるフォルダの中身もチェックするという意味です。

この記事では、pythonで指定ディレクトリの下を、再帰的にファイル検索する方法を説明します。

pythonでファイル検索を再帰的にする前提の環境

environment of recursive file search

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

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

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

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

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

pythonでファイル検索を再帰的にするサンプルプログラム

sample program of recursive file search

ここでは、カレントディレクトリの配下のフォルダやファイルをすべて取得するサンプルコードを記載します。

ライブラリのインポート

os という名前のライブラリをインポートします。

import os

指定ディレクトリのファイルを再帰的に検索する

指定されたディレクトリ配下のファイルをファイルパスを含めてリストで返すメソッドfind_all_filesを定義しています。

def find_all_files(directory):
	for cur_dir, dirs, files in os.walk(directory):
		for file in files:
			yield os.path.join(cur_dir, file)

Mainの処理

find_all_filesで得られたディレクトリのリストに対して、それぞれを表示しています。

if __name__ == '__main__':
	for file in find_all_files('./'):
		print(file)

実行結果

下記が実行結果です。 カレントディレクトリ配下には、test.pyというこのサインプルプログラムファイルと、file1とfile2というファイル、さらにdir1といフォルダがあり、dir1の下にはfile3とfile4というファイル、dir2というフォルダ、さらに、dir2フォルダの中にはfile5とfile6というファイルがあることが分かります。

$ python test.py
./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.