我ながらものすごいピンポイントの情報
macのターミナルの話です。windowsでは未検証
##結論
sys.args[0]でexeファイルのフルパスが取れたので、それを使いました。
##困ったところ
exeファイル実行時、ユーザーのホームディレクトリに解凍し、処理を実行するようです。
exeを実行した場所にexcelファイルを吐き出したかったのですが、exeファイルの実行場所に関わらず、ホームディレクトリにexcelファイルが生成されてしまいます。
exe解凍後のpythonファイルもホームディレクトリに展開されてしまいます。
print(os.path.abspath(__file__)))
# /Users/ユーザー名/do_something.py
##print(sys.args)してみる
ターミナルでpythonコマンドなりexecなりするとき、実行ファイルを引数として渡します。
そういやprint(sys.args)
でとれんじゃねーの?と思い、試してみたら取れました。
[/Users/ユーザー名/exeファイル置き場/dist/do_something_exe_file]
ファイルの置き場所を実行場所と同一にする。
あとは定番の操作をすればオッケー
file_path = os.path.join(os.path.dirname(sys.argv[0]), file_name)
感想
基礎知識、周辺知識が大事な業界だなーとつくづく思います。