Pythonでファイル名を取得する方法

python
記事内に広告が含まれています。

Pythonは、ファイル操作に関する強力な機能を持つプログラミング言語です。

ファイル名を取得する場合、標準ライブラリを使えば簡単に実現できます。

この記事では、Pythonで効率的にファイル名を取得する方法について詳しく解説します。

さまざまな用途に応じて使える方法を紹介し、初心者にも分かりやすい内容で解説します。

DMM WEBCAMP
  • 未経験者向けプログラミングスクール
  • 現役エンジニアがしっかりサポート
  • 卒業後も安心の転職・副業サポート

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は、ディレクトリ操作やファイル操作をより簡単に行うためのモジュールです。

CodeCamp
  • 現役エンジニアからスキルを学べる
  • 満足度は驚異の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)

このコードでは、指定したサブディレクトリ内のファイル名を取得しています。

特定のディレクトリを対象にする場合は、このように指定できます。

【リモートワークには必須】
キャリアに合わせてお得に光回線を利用しよう
ドコモ光
開通後、最短一ヶ月で35,000円のキャッシュバック!
 
auひかり
難しい条件一切なしで、最大12,7000円のキャッシュバック!
 
ソフトバンク光
高額キャッシュバックや豪華特典をお届け!

ファイル名の操作における注意点と便利な機能

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))

このコードは、ファイル名に年や月の情報が含まれている場合に、それを基にフォルダを作成しファイルを移動します。

時間順にファイルを整理する場合に非常に便利です。

techgym
  • 20000人が学んだpythonの教材
  • 正しい情報をまとめて入手
  • 様々なゲームを作成しながら楽しくpythonが身に付く
  • 自主学習派はこれ一択!

今なら1年間有効なzoomサポート付き!

Pythonでファイル名を取得するまとめ

今回は、Pythonでファイル名を取得するためのさまざまな方法を紹介しました。

基本的な方法から、再帰的なディレクトリ探索や拡張子の取得など、幅広いケースに対応できる手法を説明しました。

Pythonのosモジュールpathlibなどを活用することで、効率的なファイル操作が可能となります。

これらの手法を駆使して、ファイル管理をスムーズに行いましょう。

【給付金が受けられる】おすすめプログラミングスクール!
  • DMM WEBCAMP
    転職成功率98%&離職率2.3%
    転職できなければ全額返金DMM.comグループならで非公開求人も多数
  • テックアカデミー
    【転職保証】受講生の100%が内定獲得!9割以上が未経験からスタート!LINEヤフー監修&万全サポート
  • Aidemy Premium
    【給付金利用の相談歓迎】AI・データ分析学ぶならAidemy Premium
  • ウズウズカレッジ
    初心者・文系出身者でもOK、IT未経験からの専門的な就業サポート

コメント

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