
【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.")
は、条件が真である場合、テキストファイルであることを表示する命令です。
【PR】『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タイプを表示する命令です。
【PR】『Python』を学べる個人・中高生向けのプログラミングコース
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やプログラミングに関するコラム
- ChatGPTでプロンプトを使うコツとNG例|シーン別のプロンプト例まで徹底解説
- ChatGPT 4oアップデートで高クオリティな画像生成が可能に!具体例や作り方、プロンプトのコツを紹介
- 【Open AI・Claude】プロンプトジェネレーターの使い方。ChatGPTで活用するコツや利用料金も併せて解説
- 【Python】@(アットマーク)の意味を簡単に解説
- 【Python】match case(match文)で複数条件を処理する方法