2016-03-21 26 views
0

ファイルへの絶対パスをハードコーディングせずに、任意のマシンで動作する私のエグゼクティブスクリプトで相対パスをフォルダに設定します。 は、これまでのところ私は、次のしている:実行スクリプトへの相対パスを設定する方法

import os 
path_to_folder = os.path.realpath('.') 

を私は

C:\Users\Me\Desktop\Project\Script\

print(path_to_folder)リターン正しいパスを呼び出すPyCharmから私のスクリプトを実行します。しかし、私はpython3.4 C:\Users\Me\Desktop\Project\Script\my_script.pyようcmdからそれを呼び出すようにしようとした場合、私はちょうど

を取得すると

C:\Users\Me\

相対パスを設定する信頼性の高い方法は何ですか?

答えて

1

私はあなたにもちょうどPythonがすべてのモジュールを定義__file__変数を使用してPathlibせずにこれを行うことができますPathlib

# get sibling file 
sib = Path(__file__).with_name(same_level_file) 

# get parent 
par = Path(__file__).parent 

# file in sibling parent 
sib2 = Path(__file__).parent.with_name(parent_folder).joinpath(file2)  
+0

感謝を。それは動作するようです! – Andersson

0

を使用するために使用されます。

親スクリプト自体には:一般的に

from os.path import dirname, abspath 
path_to_folder = abspath(dirname(__file__)) 
print(path_to_folder) 

以上あなただけのモジュールがどこにあるかを知りたい場合は、あなただけ行うことができます。

from os.path import dirname, abspath 
import mymodule 
path_to_folder = abspath(dirname(mymodule.__file__)) 
print(path_to_folder) 
関連する問題