Pythonは、ファイル操作に関する強力な機能を持つプログラミング言語です。
ファイル名を取得する場合、標準ライブラリを使えば簡単に実現できます。
この記事では、Pythonで効率的にファイル名を取得する方法について詳しく解説します。
さまざまな用途に応じて使える方法を紹介し、初心者にも分かりやすい内容で解説します。
- 未経験者向けプログラミングスクール
- 現役エンジニアがしっかりサポート
- 卒業後も安心の転職・副業サポート
Pythonでファイル名を取得する基本的な方法
Pythonには、ファイル名の取得を行うための便利な関数やライブラリが標準で用意されています。
その中でも最も基本的な方法は、osモジュールを利用するものです。
以下では、基本的な使用方法から解説し、具体的なコード例も示していきます。
この方法を理解すれば、簡単にファイル操作を行うことができるでしょう。
osモジュールを使ったファイル名取得
Pythonでファイル名を取得する最も基本的な方法は、osモジュールを利用することです。
以下のコードでは、指定したディレクトリ内のファイル名を一覧表示する例を示します。
import os
for file_name in os.listdir("."):
print(file_name)
このコードは、現在のディレクトリ内のすべてのファイル名を取得して表示します。
osモジュールは、ファイル操作に便利な関数を多数提供しているため、非常に有用です。
globモジュールを使った特定のファイル名取得
特定の拡張子のファイル名を取得したい場合は、globモジュールを使うのが便利です。
globは、指定したパターンに一致するファイルを取得するためのライブラリであり、ファイル検索に優れた機能を提供します。
import glob
for file_name in glob.glob("*.txt"):
print(file_name)
このコードでは、カレントディレクトリ内の.txtファイルのみを取得して表示しています。
ファイル検索を行う際には、このglobモジュールを使うと効率的です。
pathlibを使ったファイル名取得
Python 3.4以降では、pathlibモジュールを使ってより直感的にファイルパスを操作できます。
特に、オブジェクト指向のスタイルでファイルパスの操作ができるため、コードが見やすくなります。
from pathlib import Path
for file_name in Path('.').iterdir():
if file_name.is_file():
print(file_name.name)
このコードは、現在のディレクトリ内のファイルを取得し、そのファイル名を表示します。
pathlibは、ディレクトリ操作やファイル操作をより簡単に行うためのモジュールです。
- 現役エンジニアからスキルを学べる
- 満足度は驚異の97.4%
- 300社以上のIT企業で研修に導入
- 毎日9時〜21時まで、無料カウンセリングを開催中!
複数のディレクトリからファイル名を取得する方法
Pythonでは、複数のディレクトリからファイル名を取得することも可能です。
再帰的にディレクトリを探索するには、os.walkやpathlibモジュールを使用する方法があります。
この章では、それぞれの方法について具体的な例を交えながら解説します。
適切な方法を選ぶことで、効率的にファイルを管理できるようになります。
os.walkを使ったディレクトリの再帰的探索
osモジュールのos.walk関数を使用することで、再帰的にディレクトリを探索し、ファイル名を取得することができます。
import os
for dirpath, dirnames, filenames in os.walk("."):
for file_name in filenames:
print(file_name)
このコードは、現在のディレクトリとそのサブディレクトリ内のすべてのファイル名を取得して表示します。
再帰的な探索を行う場合には、os.walkが非常に便利です。
pathlibで再帰的にファイル名を取得する
pathlibモジュールでも、再帰的にディレクトリを探索してファイル名を取得することができます。
以下のコードでは、現在のディレクトリ内のすべてのファイルを再帰的に探索しています。
from pathlib import Path
for file_name in Path(".").rglob("*"):
if file_name.is_file():
print(file_name.name)
このコードは、サブディレクトリ内も含めた全ファイルのファイル名を表示します。
再帰的なディレクトリ探索が必要な場合に便利です。
サブディレクトリを指定してファイル名を取得する
特定のサブディレクトリのみからファイル名を取得したい場合、簡単に指定することができます。
import os
dir_path = "./subdir"
for file_name in os.listdir(dir_path):
print(file_name)
このコードでは、指定したサブディレクトリ内のファイル名を取得しています。
特定のディレクトリを対象にする場合は、このように指定できます。
ファイル名の操作における注意点と便利な機能
Pythonでファイル名を操作する際には、いくつかの注意点があります。
特に、ファイル名の正規化や特殊文字の扱いについては慎重に行う必要があります。
また、操作の際に便利な関数やメソッドも多数存在するため、これらを活用することで、より効率的なファイル管理が可能になります。
ファイルパスの正規化
Pythonでは、ファイルパスの表記における正規化を行うために、os.path.normpathを利用できます。
import os
file_path = "C://Users//Admin//Documents"
normalized_path = os.path.normpath(file_path)
print(normalized_path)
このコードは、ファイルパスを正規化して、適切な形式で出力します。
異なるOS間での互換性を考慮する場合に特に重要です。
ファイル名の拡張子を取得・変更する
ファイル名から拡張子を取得したり、変更する場合、os.path.splitextが便利です。
import os
file_name = "example.txt"
name, ext = os.path.splitext(file_name)
print(f"ファイル名: {name}, 拡張子: {ext}")
このコードは、ファイル名から名前部分と拡張子部分を分割して取得します。
拡張子の変更や処理を行いたい場合にも便利です。
ファイル名の特殊文字の扱い
ファイル名に特殊文字が含まれる場合、エンコードやデコードが正しく行われるかを確認する必要があります。
Pythonでは、通常の文字列操作で問題が起きにくいですが、特殊文字や記号が含まれる場合は特に注意が必要です。
プログラミングスクール受講時には教育訓練給付制度を利用することで、受講料の最大80%の給付を受けることが可能です。
ファイル名を使用したデータの整理方法
Pythonを使うと、取得したファイル名を利用してデータを整理することも可能です。
例えば、ファイル名の規則性に基づいて自動的にフォルダを作成したり、異なる種類のファイルを分類することができます。
ここでは、ファイル名を使用してデータを整理するための便利なスクリプトを紹介し、具体的な方法について解説します。
これにより、ファイル管理の効率を大幅に向上させることができます。
ファイル名に基づくフォルダの自動作成
ファイル名の規則性に基づいて自動的にフォルダを作成する方法を紹介します。
例えば、画像ファイルを拡張子や日付に基づいて分類する場合などに役立ちます。
import os
for file_name in os.listdir("."):
if file_name.endswith(".jpg"):
folder_name = file_name.split("_")[0]
if not os.path.exists(folder_name):
os.mkdir(folder_name)
os.rename(file_name, os.path.join(folder_name, file_name))
このスクリプトは、ファイル名の先頭部分を使用してフォルダを作成し、該当するファイルをそのフォルダに移動します。
画像やドキュメントなど、大量のファイルを扱う際に非常に便利です。
拡張子に基づくファイル分類
拡張子に基づいてファイルを分類するスクリプトを作成することも簡単です。
この方法を使えば、画像、テキストファイル、PDFなどの異なる種類のファイルを整理することができます。
import os
from pathlib import Path
for file_name in os.listdir("."):
file_extension = Path(file_name).suffix
if file_extension:
folder_name = file_extension.lstrip(".").upper()
Path(folder_name).mkdir(exist_ok=True)
Path(file_name).rename(Path(folder_name) / file_name)
このコードは、ファイルの拡張子に基づいてフォルダを作成し、その中にファイルを移動させます。
これにより、ファイル管理がさらに効率化されます。
ファイル名のパターンに基づくデータの分類
ファイル名に特定のパターンが含まれている場合、そのパターンに基づいてデータを分類することも可能です。
例えば、年や月ごとにデータを分類したい場合、このスクリプトが有効です。
import os
import re
pattern = re.compile(r"(\d{4})_(\d{2})")
for file_name in os.listdir("."):
match = pattern.match(file_name)
if match:
year, month = match.groups()
folder_name = f"{year}_{month}"
os.makedirs(folder_name, exist_ok=True)
os.rename(file_name, os.path.join(folder_name, file_name))
このコードは、ファイル名に年や月の情報が含まれている場合に、それを基にフォルダを作成しファイルを移動します。
時間順にファイルを整理する場合に非常に便利です。
- 20000人が学んだpythonの教材
- 正しい情報をまとめて入手
- 様々なゲームを作成しながら楽しくpythonが身に付く
- 自主学習派はこれ一択!
今なら1年間有効なzoomサポート付き!
Pythonでファイル名を取得するまとめ
今回は、Pythonでファイル名を取得するためのさまざまな方法を紹介しました。
基本的な方法から、再帰的なディレクトリ探索や拡張子の取得など、幅広いケースに対応できる手法を説明しました。
Pythonのosモジュールやpathlibなどを活用することで、効率的なファイル操作が可能となります。
これらの手法を駆使して、ファイル管理をスムーズに行いましょう。



コメント