2024-04-29 16:48:27 发布
网友
我需要为Python应用程序存储配置(键/值),我正在寻找将这些配置存储在文件中的最佳方法。
我遇到了Python的ConfigParser,我想知道现在的INI文件格式是否仍然合适?! 是否存在更新的格式,或者INI仍然是推荐的方法?(XML,JSON,…)
请分享你的意见/建议。。。
INI完全正常,正如其他人所说,配置文件的格式实际上取决于您将如何使用它。
就我个人而言,我是YAML的粉丝:简洁、易读、灵活。
谷歌似乎和我一样热情,因为他们也在谷歌应用引擎中使用它。python解析器是here。
Dictionaries也很受欢迎。基本上是一个哈希表。
{"one": 1, "two": 2}就是一个例子,有点像json。
{"one": 1, "two": 2}
然后您可以像mydict["one"]那样调用它,它将返回1。
mydict["one"]
然后可以使用shelve将字典保存到文件中:
mydict = shelve.open(filename) # then you can call it from there, like mydict["one"]
所以,这比ini文件要简单一些。你可以像列表一样添加内容或者很容易地更改选项,然后一旦你关闭它,它就会把它写回来。
这里有一个简单的例子来说明我的意思:
import shelve def main(): mydict = shelve.open("testfile") mydict["newKey"] = value("some comment", 5) print(mydict["newKey"].value) print(mydict["newKey"].comment) mydict.close() class value(): def __init__(self, comment, value): self.comment = comment self.value = value if __name__ == '__main__': main()
考虑使用普通的Python文件作为配置文件。
示例(example.conf):
example.conf
# use normal python comments value1 = 32 value2 = u"A unicode value" value3 = "A plain string value" value4 = ["lists", "are", "handy"] value5 = {"and": "so", "are": "dictionaries"}
在程序中,使用execfile(2.7 docs)加载配置文件:
execfile
if __name__ == "__main__": config = {} execfile("example.conf", config) # python 3: exec(open("example.conf").read(), config) print config["value1"] print config["value5"]
我喜欢这种方法,原因如下:
这种方法被广泛使用,例如:
import
settings.py
~/.bashrc
site.py
INI完全正常,正如其他人所说,配置文件的格式实际上取决于您将如何使用它。
就我个人而言,我是YAML的粉丝:简洁、易读、灵活。
谷歌似乎和我一样热情,因为他们也在谷歌应用引擎中使用它。python解析器是here。
Dictionaries也很受欢迎。基本上是一个哈希表。
{"one": 1, "two": 2}
就是一个例子,有点像json。然后您可以像
mydict["one"]
那样调用它,它将返回1。然后可以使用shelve将字典保存到文件中:
所以,这比ini文件要简单一些。你可以像列表一样添加内容或者很容易地更改选项,然后一旦你关闭它,它就会把它写回来。
这里有一个简单的例子来说明我的意思:
考虑使用普通的Python文件作为配置文件。
示例(
example.conf
):在程序中,使用
execfile
(2.7 docs)加载配置文件:我喜欢这种方法,原因如下:
这种方法被广泛使用,例如:
execfile
,它使用import
读取/执行settings.py
AFAIK,但最终结果是相同的:设置文件中的代码被执行。~/.bashrc
。site.py
。相关问题 更多 >
编程相关推荐