前提・実現したいこと
Pythonにて実行ファイルのフォルダの絶対パスを取得したいと思っています。
方法として
Python
1os.path.dirname(__file__)
を使用していましたが、OSなどの環境によっては正しくパスが取得できないことが分かりました。
・取得できた環境:Windows10 home, Python 3.7.1, VScodeで実行
・取得できなかった環境:Windows10 Pro, Python 3.7.3, コマンドプロンプトで実行
➡取得できなかった時の結果は空でした。
解決策として以下いろいろな方法があることがわかったのですが
Python
1os.path.dirname(os.path.abspath(__file__)) 2os.path.split(os.path.realpath(__file__))[0] 3os.path.join(os.path.dirname(__file__))
ただ公式ドキュメントを見てもどのプラットフォームでどのような挙動になるというような詳しい記述がないようでした。
https://docs.python.org/ja/3/library/os.path.html
OSなど環境に依存せず、どの環境でも同じように実行ファイルのフォルダ絶対パスが取得できる方法を知りたいと思っています。
アドバイスを頂ければ幸いです。よろしくお願いします。
「OSなどの環境によっては正しくパスが取得できないことが分かりました」の中身を具体的に示さないと、適切な回答は難しいと思います
__file__ はOSなどに依存せず、スクリプトのパスを取得できたと思いますが、具体的にどの OS、環境でうまく取得できなかったのでしょうか
失礼いたしました。質問内容の修正をしました。
まだ足りないようでしたら、ご指示をいただければと存じます。
コマンドプロンプトで実行というのは、python <ファイル名>.py のようにして python ファイルを実行した結果、そうなったのでしょうか?
おっしゃるとおりコマンドプロンプトでの実行は
python <ファイル名>.py
で行いました。
回答3件
あなたの回答
tips
プレビュー