Pythonスクリプトをexe化すると、PythonがインストールされていないPCでも作ったPythonのプログラムを利用することができます。しかし、スクリプトで外部のファイルを参照している場合、特に注意が必要です。
CSVファイルの読み込み
PythonでCSVファイルを読み込む基本的な方法は、csv.reader()
を使用することです。しかし、exe化した場合、ファイルパスの指定方法が変わります。
import csv
import sys
import os
if getattr(sys, 'frozen', False): # 実行ファイルからの実行時
script_dir = sys._MEIPASS
else: # スクリプトからの実行時
script_dir = os.path.dirname(os.path.abspath(__file__))
file_path = os.path.join(script_dir, "sample.csv")
with open(file_path, "r") as f:
reader = csv.reader(f)
for row in reader:
print(row)
このコードでは、sys._MEIPASS
を使用して、exe化した際の一時フォルダを指定しています。
PyInstallerのオプション
PyInstallerでexe化する際には、いくつかのオプションを指定することができます。
--onefile
: ファイルを一つにまとめる。--noconsole
: 実行時にコンソールを表示させない。--add-data
: 参照するファイルを実行ファイルに同梱する。
例えば、以下のように指定します。
pyinstaller --onefile --add-data "sample.csv;." main.py
このコマンドは、main.py
をexe化し、sample.csv
を同梱することを指定しています。
以上が、Pythonスクリプトをexe化し、CSVファイルを読み込む基本的な方法です。これにより、PythonがインストールされていないPCでも、CSVファイルを読み込むPythonプログラムを実行することが可能になります。