Pythonには、ファイルのサイズや存在を確認するための便利な標準モジュールがあります。その中でもよく使われるのが os
モジュールの中の os.path
です。
この記事では、「JPEG・PNG・SVG」の画像ファイルサイズを実際に調べるサンプルを通じて、os.path.getsize()
の使い方を初心者にもわかりやすく解説します。
osモジュールとは?
Pythonの os
モジュールは、ファイルやフォルダの操作、パスの確認、環境変数の取得などを行うことができる非常に便利な標準ライブラリです。
特に、os.path
はファイルの存在確認やサイズ取得、パス操作などに使われます。
os.path.getsize() の使い方
基本構文
import os
size = os.path.getsize("ファイル名またはパス")
この関数は、指定したファイルのサイズ(バイト単位)を返します。
【実例】JPEG・PNG・SVGのファイルサイズを比較してみた
256pxの同一アイコン(例:プログラムアイコン)をそれぞれの画像形式で保存し、サイズを比べてみます。

画像ファイルの準備
今回は「ICOOON MONO」という無料アイコン配布サイトから以下3種類のファイルをダウンロードし、同じフォルダに保存してください。
pro.jpeg
pro.png
pro.svg
コード例(実行して比較)
import os
#1---ファイル名(同じフォルダにある前提)
jpeg_file = 'pro.jpeg'
png_file = 'pro.png'
svg_file = 'pro.svg'
#2---サイズ取得
jpeg_size = os.path.getsize(jpeg_file)
png_size = os.path.getsize(png_file)
svg_size = os.path.getsize(svg_file)
#3---結果出力
print("JPEGサイズ:", jpeg_size, "byte")
print("PNGサイズ:", png_size, "byte")
print("SVGサイズ:", svg_size, "byte")
1の部分でダウンロードしたそれぞれのアイコンのパスを指定しています。2の部分でサイズを取得しています。最後に3の部分でサイズを出力しています。
実行結果
JPEGサイズ:5617 byte
PNGサイズ:6889 byte
SVGサイズ:2271 byte
結果としては「png size[byte]= 6889」「jpeg size[byte]= 5617」「svg size= 2271」です。単位はbyteです。整理すると「png>jpeg>svg」となりました。
ビットマップデータ(png、jpegなど)と二次元ベクターデータ(svgなど)では全然サイズが違いますね。サイトなどはなるべくsvgを使うと良いのかもしれませんね。
結論
- SVG形式が最も軽量
- ビットマップ画像(JPEGやPNG)は容量が大きい
- Webサイトでの読み込み速度を意識するなら、可能な限りSVGを使うのがおすすめ!
補足:ファイルが存在しないとエラーになる?
はい、指定したファイルが存在しないと FileNotFoundError
が発生します。以下のように事前確認するのが安全です。
if os.path.exists("pro.png"):
print(os.path.getsize("pro.png"))
else:
print("ファイルが存在しません")
その他の便利なosの使い道
操作内容 | コード例 |
---|---|
カレントディレクトリの取得 | os.getcwd() |
ファイルの存在確認 | os.path.exists("ファイル名") |
拡張子の取得 | os.path.splitext("file.png") |
ディレクトリの中身一覧 | os.listdir("ディレクトリ名") |
まとめ
os.path.getsize()
を使えば、ファイルサイズを簡単に調べられる- 画像形式によってサイズは大きく変わる
- SVGはWebやアプリ開発で軽量&高解像度に対応できる優れた形式
初心者でも扱いやすいこのモジュール、ぜひ試してみてください。