この記事では「Pythonにてフォルダ内のすべてのファイル名を取得(一覧)・出力する方法【print:csvやexcelなど】」について解説していきます。
ポイントとしては
・osモジュールのlistdir関数
・osモジュールのglob関数
を使うといいです。
基礎的な処理のため、これらのコードは考えるというよりも、自然言語のように覚える&慣れるのがおすすめです。
それではいきます!
Pythonにてフォルダ内の全てのファイル名の一覧を表示させる方法【printにて】
それでは以下でPythonにてフォルダ内の全てのファイル名の一覧を表示させる方法を確認します。
まずは、jupyter notebook上にprint関数を使って出力させてみます。
import os
dir_path = 'C://sample3'
for filename in os.listdir(dir_path):
print(filename)
osモジュールのlistdirは、ディレクトリパス(ここではC直下のsample3フォルダ)を予め指定しておくことで、その中身を取得してくれる関数です。
後は、for文を用いて順々に表示させれば、フォルダ内のすべてのファイル名一覧を表示させることができるわけですね。
実行結果は以下の通り。
実際のフォルダ内のファイル一覧と一致しているのがわかりますね。
念のためファイルの存在確認をしておくのもいい
エラー防止のため、すべてのファイル一覧を取得したいフォルダ内にファイルがあるか、存在確認しておくのもいいです。
import os
dir_path = 'C://sample3'
for filename in os.listdir(dir_path):
if os.path.isfile(os.path.join(dir_path, filename)):
print(filename)
isfile関数は言葉の通り、ファイルが存在するかどうか?をチェックできる関数です。
globモジュールのglob関数でもフォルダ内のファイル名を取得できる
なお、ディレクトリ内のすべてのファイルの一覧を表示するには、globモジュールにおけるglob関数を使うといいです。
import glob
dir_path = 'C://sample3'
for filename in glob.glob(dir_path+'//*'):
print(filename)
これでディレクトリ名を含んだすべてのファイル名の取得(フルパス)ができました。
globモジュールのglob関数では、osモジュールのlistdir関数と同様に、これのみでフォルダ内のファイルをすべて取得してくれるものです。
os.path.basenameにてファイル名の部分のみを取得できる
globではフルパスとなってしまうのでbasename関数(osモジュール)でファイル名だけを抽出して一覧表示させることもできます。
import glob
dir_path = 'C://sample3'
for filename in glob.glob(dir_path+'//*'):
print(os.path.basename(filename))
出力結果は以下の通り。
コメント