gpt4 book ai didi

python - 解析未知长度的配置文件

转载 作者:行者123 更新时间:2023-12-01 05:11:04 26 4
gpt4 key购买 nike

我是一个Python菜鸟,遇到了一些障碍。我需要导入配置文件才能使程序运行。我当然正在使用 configparser,但这是我遇到的问题并且无法弄清楚。我的配置文件看起来像这样

[Book1]
title = "Hello World"
status = "in"
location = "s2v14"

[Book2]
....

这将无限期地持续下去。我的问题是,如果我不知道该部分是什么,甚至不知道存在多少个部分,我该如何解析配置文件。该应用程序的目的是让我在图书状态从“出”变为“入”时接收一条消息,并显示与该部分相关的所有其他数据。

最佳答案

通常使用某种循环来处理未知或可变数量的事物。在这种情况下,可以使用由找到的节数控制的for循环,因为在ConfigParser实例对象读取并解析文件之后,它们和它们的数量都是已知:

config = ConfigParser.ConfigParser()

with open('unknown.cfg') as cfg_file:
config.readfp(cfg_file) # read and parse entire file

for section in config.sections():
print 'section:', section
for option, value in config.items(section):
print ' {}: {}'.format(option, value)

如果这是输入文件:

[Book1]
title = "Hello World"
status = "in"
location = "s2v14"
[Book2]
title = "Hello World II"
status = "out"
location = "s2v15"

这将是输出:

section: Book1
title: "Hello World"
status: "in"
location: "s2v14"
section: Book2
title: "Hello World II"
status: "out"
location: "s2v15"

请注意,您的字符串中包含实际的引号字符串分隔符,当您打印它们时,这些分隔符将可见......这不是在配置文件中存储字符串的常用方法。如果您无法更改配置文件的生成方式,那么根据您正在执行的操作,您可能需要在 ConfigParser 对象读取它们后手动将其删除(使用avalue = value.strip('"'))。

另一种方法是将整个配置文件转换为字典,如 answer 所示。关于将ConfigParser.items转换为字典字典的问题,之后可以通过使用for循环循环字典的内容来再次处理该字典。

关于python - 解析未知长度的配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24215971/

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