gpt4 book ai didi

python - 无论位置如何,如何解析配置文件中的参数?

转载 作者:太空宇宙 更新时间:2023-11-04 06:42:33 25 4
gpt4 key购买 nike

例如一个配置文件可以有

CFLAGS = "xyz"
CXXFLAGS = "xyz"

CXXFLAGS = "xyz"
CFLAGS = "xyz"

我能想到的最好的实现方式是拆分参数并将左侧输入开关

for line in file
x = line.split("=")
switch(x[0])
case CFLAGS
do cflags
case CXXFLAGS
do cxxflags

但是经验比我多得多的人是怎么做到的呢?我知道可能有一些开源程序可以执行此操作,但我什至不知道去哪里查看它们的源代码。我主要使用 python 和 C 编程,因此最好使用这两种语言的实现/伪代码/whattolookup,尽管其他语言也可以。

提前致谢。

附言尽量避免在你的答案中使用任何形式的 re、regex、regexp、正则表达式或它们的任何派生词,除非这是不可避免的 :P。

最佳答案

在 Python 中只需使用 ConfigParser将解析 .ini 的模块- 适合您的配置文件。

自己重新实现这个,我发现将配置数据作为一种字典来查看很方便。这自然会转换为 Python 的字典,所以如果我将行拆分为 <key> = <value>我只是继续更新:

confdict[key] = value

使用此方案,配置文件中键的顺序无关紧要,就像它在字典本身中无关紧要一样 - 只要您可以查找键的值,您就很高兴。


如果你看一下 ConfigParser 的内幕,例如(相关方法是 _read ),你会发现这正是它的作用。这些选项保存在字典中(每个部分一个,因为 .ini 配置文件具有一层层次结构)。使用正则表达式和 key, value 从文件中解析行如上所述,对被添加到字典中。


这是 Python。在 C 语言中,我想有很多库可以执行此操作,但是实现您自己的库将遵循完全相同的算法。您将为字典使用某种关联数组数据结构(哈希表、树或其他无关紧要的东西)并执行相同的解析和分配。

关于python - 无论位置如何,如何解析配置文件中的参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5815408/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com