ディレクトリに含まれるファイルとディレクトリの一覧を取得する
【開発環境】
OS:Win10(64ビット)
言語:Python3.8.5(64bit)
Python の統合開発環境:IDLE
IDLEの操作は別サイト参照のこと
【ファイルとディレクトリの一覧取得:listdir 関数】
指定したディレクトリに含まれるファイルとディレクトリの一覧を取得するには、 os モジュールに含まれる listdir 関数を使用する
・書式
os.listdir(path='.')
【対話コード】
例文
Python 3.8.5 (tags/v3.8.5:580fbb0, Jul 20 2020, 15:57:54) [MSC v.1924 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>> import os
>>> p = 'D:/Data/'
>>> filelist = os.listdir(p)
>>> for f in filelist:
print(f)
print(os.path.join(p, f))
back
D:/Data/back
sample10-1.py
D:/Data/sample10-1.py
sample11-1.py
D:/Data/sample11-1.py
sample8-1.py
D:/Data/sample8-1.py
sample8-4.py
D:/Data/sample8-4.py
sample9-1.py
D:/Data/sample9-1.py
sample9-2.py
D:/Data/sample9-2.py
>>>
【ファイルかディレクトリなのかを調べる】
指定したパスがファイルかディレクトリなのかを調べるには os.path モジュールで用意されている isfile 関数および isdir 関数を使用う。
・書式
os.path.isfile(path)←ファイル
または
os.path.isdir(path)←ディレクトリ
サンプルコード
「sample5-2.py」ファイルに下記のコードを書いて、保存して実行する
import os
path = 'D:/Data/'
filelist = os.listdir(path)
for f in filelist:
if os.path.isfile(os.path.join(path, f)):
print('[F]:' + f)
else:
print('[D]:' + f)
・実行結果
Python 3.8.5 (tags/v3.8.5:580fbb0, Jul 20 2020, 15:57:54) [MSC v.1924 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>>
========================= RESTART: D:/Data/sample5-2.py ========================
[D]:back
[F]:sample10-1.py
[F]:sample11-1.py
[F]:sample5-2.py
[F]:sample8-1.py
[F]:sample8-4.py
[F]:sample9-1.py
[F]:sample9-2.py
>>>
【ファイルやディレクトリに関する情報も併せて取得する】
指定したディレクトリに含まれるファイルとディレクトリの一覧を取得する別の方法として、 os モジュールに含まれる scandir 関数を使う。
・書式
os.scandir(path='.')
サンプルコード
「sample5-3.py」ファイルに下記のコードを書いて、保存して実行する。
import os
path = 'D:/Data/'
for i in os.scandir(path):
if i.is_file():
print('[F]:' + i.name + ' ' + i.path)
else:
print('[D]:' + i.name + ' ' + i.path)
・実行結果
========================= RESTART: D:/Data/sample5-3.py ========================
[D]:back D:/Data/back
[F]:sample10-1.py D:/Data/sample10-1.py
[F]:sample11-1.py D:/Data/sample11-1.py
[F]:sample5-2.py D:/Data/sample5-2.py
[F]:sample5-3.py D:/Data/sample5-3.py
[F]:sample8-1.py D:/Data/sample8-1.py
[F]:sample8-4.py D:/Data/sample8-4.py
[F]:sample9-1.py D:/Data/sample9-1.py
[F]:sample9-2.py D:/Data/sample9-2.py
>>>