1

プロジェクトのフォルダ階層は次のようになります

ProjectName
   ->src
      ->Project.sikuli
          ->myFile.py
          ->config.txt

これで、すべての設定変数が config.txt に保存され、ConfigParser を使用して値を取得しています。ここでこの構成ファイルを使用する理由は、この sikuli スクリプトを実行するために別のマシンに移動するときに、メインの python スクリプト 'myFile を編集するのではなく、パス、ユーザー名、パスワードなどの値を変更するだけでよいからです.py'.
しかし、私が今直面している問題は、構成ファイルをプロジェクトの外部に配置したくないため、スクリプトで値を取得しようとするときに、絶対に言及する必要がないことです。次のように myFile.txt に再度パスを追加します。

configParser = ConfigParser.RawConfigParser()
configfilePath = r'D:\MyWorkspace\ProjectName\src\Project.sikuli\config.txt'

代わりに、プロジェクトをマシンからマシンに移行するときに、メイン スクリプト 'myFile.py' で操作を行う必要がないように、ここに相対パスを指定します。

だから私が達成しようとしているのは次のようなものです:相対パスを指定することでconfig.txtファイルを参照できるはずです:

configfilePath = r'D:\MyWorkspace\ProjectName\src\Project.sikuli\config.txt'
4

4 に答える 4

0

と同じフォルダーに保存する場合myFile.pyは、その Python スクリプトで次のようなものを使用できます。

configfilePath = os.path.join(os.path.dirname(__file__), 'config.txt')
于 2013-10-16T07:25:45.613 に答える
-1

Pythonファイルをインポートすることで、変数と値を取得できることは知っています...

import config

プロジェクトのルートレパートリーに入れます

于 2013-10-16T07:14:38.617 に答える
-1

まず、現在実行中の Python スクリプトのパスを取得します。

myPath = os.path.abspath(os.path.dirname(sys.argv[0]))

次に、myPath と「config.txt」を結合します。

configfilePath = os.path.join(myPath, 'config.txt')
于 2013-10-16T09:14:17.767 に答える