我应该在我的python项目中放置一个config.txt

时间:2013-10-16 07:05:21

标签: python

项目文件夹层次结构类似于

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 个答案:

答案 0 :(得分:0)

如果它将保存在与myFile.py相同的文件夹中,那么在该Python脚本中你可以使用以下内容:

configfilePath = os.path.join(os.path.dirname(__file__), 'config.txt')

答案 1 :(得分:0)

执行此操作的最佳方法是将文件放在<{em>} <{1}}包中,就像在示例中所做的那样,然后像这样获取文件的路径:

.sikuli

答案 2 :(得分:-1)

我知道你可以通过导入它来从python文件中获取变量和值...

import config

我会把它放在项目的根目录中

答案 3 :(得分:-1)

首先,获取当前执行的python脚本的路径:

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

然后连接myPath和'config.txt'

configfilePath = os.path.join(myPath, 'config.txt')