如何从Python中的etc / sysconfig中检索值

时间:2010-05-20 08:00:46

标签: python linux bash environment-variables ini

我在/ etc / sysconfig /中有一个配置文件FOO。这个Linux文件与INI-File非常相似,但是没有部分声明。

为了从这个文件中检索一个值,我曾经写过一个shell脚本,如:

source /etc/sysconfig/FOO
echo $MY_VALUE

现在我想在python中做同样的事情。我尝试使用ConfigParser,但ConfigParser不接受这样的INI-File类似格式,除非它有一个部分声明。

有没有办法从这样的文件中检索值?

2 个答案:

答案 0 :(得分:1)

我想你可以使用subprocess模块完成你正在使用shell脚本所做的事情并阅读它的输出。将shell选项设置为True即可使用。

答案 1 :(得分:1)

如果您想使用ConfigParser,可以执行以下操作:

#! /usr/bin/env python2.6

from StringIO import StringIO
import ConfigParser

def read_configfile_without_sectiondeclaration(filename):
    buffer = StringIO()
    buffer.write("[main]\n")
    buffer.write(open(filename).read())
    buffer.seek(0)
    config = ConfigParser.ConfigParser()
    config.readfp(buffer)
    return config

if __name__ == "__main__":
    import sys
    config = read_configfile_without_sectiondeclaration(sys.argv[1])
    print config.items("main")

代码创建一个内存中的文件对象,其中包含[main]节标题和指定文件的内容。然后ConfigParser读取该文件类对象。