【Python】拡張子を判別する4つの方法を簡単に解説

公開: 更新:

Pythonを使用すると、以下のような方法でファイルの拡張子を識別したり、特定の拡張子を持つファイルを処理したりすることができます。

  • endswith メソッドを使う方法
  • os.path.splitext メソッドを使う方法
  • mimetypes モジュールを使う方法
  • ファイルの中身を調べる方法

上記4つの方法について、簡単に解説していきます。



1. endswith メソッドを使う方法

endswithメソッドは、文字列が特定の拡張子で終わっているかどうかの確認に適しています。

【サンプルコード】
filename = "example.txt"
if filename.endswith(".txt"):
    print("This is a text file.")

filename = "example.txt"は、テキストファイルの名前を示しており、このファイル名を使用して拡張子を確認します。

if filename.endswith(".txt"):は、filenameが".txt"で終わっているかどうかを確認する条件文を示しています。

print("This is a text file.")は、条件が真である場合、テキストファイルであることを表示する命令です。

「Python」を学べるコードキャンプのサービス

2. os.path.splitext メソッドを使う方法

splitext()関数は、ファイル名から拡張子を取得するための関数であり、拡張子を判別する際に有用です。

【サンプルコード】
import os
filename = "example.txt"
base_name, extension = os.path.splitext(filename)
print(extension)  # Output: .txt

import osは、osモジュールをインポートしています。

filename = "example.txt"は、テキストファイルの名前を示しており、このファイル名を使用して拡張子を確認します。

base_name, extension = os.path.splitext(filename)は、ファイル名と拡張子に分割する命令で、print(extension)は、取得した拡張子を表示する命令です。

3. mimetypes モジュールを使う方法

guess_type関数を使用して、ファイルの拡張子からMIMEタイプを推測できます。

【サンプルコード】
from mimetypes import guess_type
mime_type, encoding = guess_type("example.csv")
print(mime_type)  # Output: 'text/csv'

from mimetypes import guess_typeは、mimetypesモジュールからguess_type関数をインポートしています。

mime_type, encoding = guess_type("example.csv")は、ファイルのMIMEタイプとエンコーディングを取得しています。

print(mime_type)は、取得したMIMEタイプを表示する命令です。

おすすめのPython研修一覧

Python研修を提供しているおすすめの企業・法人を一覧で掲載しております。

Python研修の一覧を見る

おすすめのDX研修一覧

DX研修を提供しているおすすめの企業・法人を一覧で掲載しております。

DX研修の一覧を見る

おすすめのJava研修一覧

Java研修を提供しているおすすめの企業・法人を一覧で掲載しております。

Java研修の一覧を見る

おすすめのJavaScript研修一覧

JavaScript研修を提供しているおすすめの企業・法人を一覧で掲載しております。

JavaScript研修の一覧を見る

4. ファイルの中身を調べる方法

ファイルのヘッダを調べることで、拡張子が信用できない場合や拡張子のないファイルも判別できます。

【サンプルコード】
def is_txt(file_path):
    with open(file_path, 'rb') as f:
        header = f.read(4)
        return header.startswith(b'TEXT')

def is_txt(file_path):は、テキストファイルかどうかを確認する関数を定義しています。

with open(file_path, 'rb') as f:は、ファイルをバイナリモードで読み込む命令で、header = f.read(4)は、ファイルの最初の4バイトを読み込む命令です。

return header.startswith(b'TEXT')は、読み込んだヘッダが'TEXT'で始まっているかどうかを確認する命令です。

拡張子の判別方法を複数あるので、場面場面で適切に使い分けられるよう、しっかり理解しておく事をおすすめします。

※上記コンテンツの内容やソースコードはAIで確認・デバッグしておりますが、間違いやエラー、脆弱性などがある場合は、コメントよりご報告いただけますと幸いです。

ITやプログラミングに関するコラム


ITやプログラミングに関するニュース

ブログに戻る

コメントを残す

コメントは公開前に承認される必要があることにご注意ください。

コードキャンプIT・プログラミング研修事例/現場により近いところにデジタルを根付かせるDX基礎講座研修|株式会社ブリヂストン - ITやプログラミングを知って学べるコネクトメディア コードキャンプIT・プログラミング研修事例/業務の効率化・DX推進に向けたIT人材育成への第一歩|株式会社カナエ - ITやプログラミングを知って学べるコネクトメディア 企業・法人向けのIT・プログラミング研修 - ITやプログラミングを知って学べるコネクトメディア 中途採用者向けのIT・プログラミング研修 - IT・プログラミングを知って学べるコネクトメディア

新着記事

対象者別で探す

子供(小学生・中学生・高校生)向け
プログラミング教室検索する

子供(小学生・中学生・高校生)がロボットやプログラミング言語を学ぶことができるオフラインからオンラインスクールを検索、比較することが可能です。

子供(小学生・中学生・高校生)
プログラミング教室検索する

ITやプログラムなどの
最新情報を検索する

日々、新しいITやプログラミング言語の情報が流れていきますが、特定の情報を時系列でニュースやコラムを確認することができます。

ITやプログラムなどの
最新情報を検索する