2016-08-15 7 views
0

私たちは、プログラムへのユーザー入力に基づいてPolyworks内の特定のマクロを実行するPythonプログラムを作成しています。現在のところ、コードはPythonプログラムのファイルパスを含む文字列を作成するにはどうすればよいですか?

ですが、これは私たちのプログラムが常にC:\ RotoWorksにインストールされていることを前提としています。理想的には、私たちのアプリは移植性があります。私は、Rotoworksが格納されているファイルパスを取得し、残りのファイルパスを最後まで連結する方法を確信しています。これはどうすればいいですか?

+0

[現在のスクリプトディレクトリをPythonで正しく判断する方法](http://stackoverflow.com/questions/37186​​57/how-to-properly-determine-current-script-directory-in-python) –

答えて

2

ファイルの__file__属性からパスを取得できます。入っているディレクトリを取得するために、ファイルの絶対パスを取得するために、その属性にos.path.abspathを使用して、os.path.dirname

import os 

file_directory = os.path.dirname(os.path.abspath(__file__)) 
path = os.path.join(file_directory, other_path) # join directory to an inner path 
roto.command.CommandExecute('MACRO EXEC({})'.format(path)) 

使用os.path.dirname再帰的に好きなだけのディレクトリを移動します。

+0

私は使用し、Pythonスクリプトとして実行するときに働いた。しかし、py2exeを使って実行可能ファイルにパッケージ化したとき、 '__file__は定義されていません'と表示されます。これを避けるにはどうすればいいですか? – RBuntu

+0

@RBuntuこれには少し異なるアプローチが必要です。これは:[現在実行されているファイルのパスをPythonでどのように取得するのですか?](http://stackoverflow.com/questions/2632199/how-do-i-get-the-path-of-the-current-executed -file-in-python) –

+0

ありがとう!確かめます – RBuntu

関連する問題