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 回答
0

最好的方法是将文件放入.sikuli包中,就像您在示例中所做的那样,然后像这样获取文件的路径:

configFilePath = os.path.join(getBundlePath(), 'config.txt')
于 2016-01-19T18:24:55.030 回答
-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 回答