项目文件夹层次结构类似于
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'
答案 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')