【Python】ファイル名一覧の取得方法!!イテレータ・リストそれぞれ解説

スポンサーリンク
【Python】ファイル名一覧の取得方法!!Python
この記事を読んで分かること
  • pythonでファイル一覧を取得する方法

 

ファイル一覧を取得(イテレータ)

イテレータでファイル名一覧を取得するには、pathlibモジュールを使用します。

Pathオブジェクトの.iterdir()メソッドを使うことで、対象のディレクトリ中身の一覧が取得できます。

import pathlib

dir_path = "./folder1/"
file_names = pathlib.Path(dir_path).iterdir()

for i in file_names:
    print(i)

実行結果

folder1/file1.txt
folder1/folder2
folder1/file2.png
folder1/file3.jpg

 

絶対パスで取得

pathlibモジュールの結果を絶対パスで返してもらうにはresolve()関数を使用します。

dir_path = "./folder1/"
file_names = pathlib.Path(dir_path).iterdir()

for i in file_names:
    print(i.resolve())

実行結果

/work/folder1/file1.txt
/work/folder1/folder2
/work/folder1/file2.png
/work/folder1/file3.jpg

 

ファイル・ディレクトリ名だけを取得

pathlibモジュールで取得した結果には、パスが含まれていました。

パス部分が不要な場合には、nameを使用します。

dir_path = "./folder1/"
file_names = pathlib.Path(dir_path).iterdir()

for i in file_names:
    print(i.name)

実行結果

file1.txt
folder2
file2.png
file3.jpg

 

拡張子なしの名前を取得

拡張子なしのファイル名を取得する場合は、stemを使用します。

dir_path = "./folder1/"
file_names = pathlib.Path(dir_path).iterdir()

for i in file_names:
    print(i.stem)

実行結果

file1
folder2
file2
file3

 

拡張子を取得

拡張子だけを取得する場合は、suffixを使用します。

dir_path = "./folder1/"
file_names = pathlib.Path(dir_path).iterdir()

for i in file_names:
    print(i.suffix)

実行結果

.txt

.png
.jpg

 

ファイルとディレクトリを判別

pathlibモジュールで取得した結果には、ファイルとディレクトリが混ざっていました。

ファイルとディレクトリを判別するにはis_file()またはis_dir()を使用します。

dir_path = "./folder1/"
file_names = pathlib.Path(dir_path).iterdir()

for i in file_names:
    print(i)
    print(f"  file? : {i.is_file()}")
    print(f"  dir? : {i.is_dir()}")

実行結果

folder1/file1.txt
  file? : True
  dir? : False
folder1/folder2
  file? : False
  dir? : True
folder1/file2.png
  file? : True
  dir? : False
folder1/file3.jpg
  file? : True
  dir? : False

 

ファイル一覧を取得(リスト)

リストでファイル名一覧を取得するには、listdirモジュールを使用します。

import os
dir_path = "./folder1/"

file_names = os.listdir(dir_path)
print(file_names)

実行結果

['file1.txt', 'folder2', 'file2.png', 'file3.jpg']

 

まとめ

pythonでファイル名一覧を取得する方法を2種類紹介しました。

イテレータでファイル名一覧を取得するには、pathlibモジュールを使用し、

リストでファイル名一覧を取得するには、os.listdirモジュールを使用します。

 

参考文献

pathlib --- オブジェクト指向のファイルシステムパス
ソースコード: Lib/pathlib.py このモジュールはファイルシステムのパスを表すクラスを提供していて、様々なオペレーティングシステムについての適切な意味論をそれらのクラスに持たせています。 Path クラスは 純粋パス と 具象パス からなります。 純粋パスは I/O を伴わない純粋な計算操作を提供します。 ...
os --- 雑多なオペレーティングシステムインターフェース
ソースコード: Lib/os.py このモジュールは、 OS 依存の機能を利用するポータブルな方法を提供します。単純なファイルの読み書きについては、 open() を参照してください。パス操作については、 os.path モジュールを参照してください。コマンドラインに与えられたすべてのファイルから行を読み込んでいくには...
pathlib --- オブジェクト指向のファイルシステムパス
ソースコード: Lib/pathlib.py このモジュールはファイルシステムのパスを表すクラスを提供していて、様々なオペレーティングシステムについての適切な意味論をそれらのクラスに持たせています。 Path クラスは 純粋パス と 具象パス からなります。 純粋パスは I/O を伴わない純粋な計算操作を提供します。 ...

コメント

タイトルとURLをコピーしました