※このページではアフィリエイト広告を利用しています

【Python応用】os.path.getsizeを用いてファイルのサイズを取得する方法

Python

Pythonには、ファイルのサイズや存在を確認するための便利な標準モジュールがあります。その中でもよく使われるのが os モジュールの中の os.path です。

この記事では、「JPEG・PNG・SVG」の画像ファイルサイズを実際に調べるサンプルを通じて、os.path.getsize() の使い方を初心者にもわかりやすく解説します。

  • os モジュールとは何か
  • ファイルサイズを取得する方法
  • 実用的な使用例(画像ファイルの比較)
  • 初心者がつまずきやすいポイントの解説
スポンサーリンク
スポンサーリンク

osモジュールとは?

Pythonの os モジュールは、ファイルやフォルダの操作、パスの確認、環境変数の取得などを行うことができる非常に便利な標準ライブラリです。

特に、os.path はファイルの存在確認やサイズ取得、パス操作などに使われます。

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やアプリ開発で軽量&高解像度に対応できる優れた形式

初心者でも扱いやすいこのモジュール、ぜひ試してみてください。

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