2012-03-06 51 views
1

我试图让我所有的硬编码路径出我的项目之一,并进入config.ini文件。唯一剩下的就是配置文件本身。由于我在读它:从代码中获取所有硬编码路径,如何处理配置文件?

>>> config = ConfigParser.RawConfigParser() 
>>> configReader = config.read('config.ini') 

我不知道如何得到这一点的代码(如果它甚至有可能)。那么有没有办法从代码中获得硬编码的配置路径?

+0

如果你打算在Linux平台上发布这个,你可能想要ck的XDG基地目录规范,和pyxdg - http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html – 2012-03-06 10:25:56

+0

这将是Linux和Windows,谢谢你的链接 – 2012-03-06 10:26:56

回答

3

您可以通过使用__file__找到路径模块:

#config.py 
pass 

导入模块,您可以访问它从导入的文件的名称:

#main.py 
import os 
import config 

print config.__file__ 
print os.path.basename(config.__file__) 
print os.path.dirname(config.__file__) 

在运行此控制台给出:

>>> import main 
C:/Users/peterwood/Desktop\config.py 
config.py 
C:/Users/peterwood/Desktop 
0

取一个命令行参数,该参数指定程序可以找到您的配置文件的位置。

看看http://docs.python.org/library/optparse.html和它的更新的兄弟http://docs.python.org/dev/library/argparse.html关于如何解析Python中的命令行参数。

+0

我希望它以Python包的形式工作,而不是命令行工具 – 2012-03-06 10:09:43

+0

然后根据需要将Python包的用户传递到配置文件的位置,他们很可能将通过开始时传入的参数从最终用户获取该包的过程。 – 2012-03-06 10:11:57

0

我不知道如何从代码中得到它(或者如果它甚至可能是 )。

不可能AFAIK。该程序必须知道以某种方式读取哪个文件。在程序中配置文件的硬编码路径没有任何问题。

相关问题