我正在做一个项目,我想把.ini配置文件改成.yaml。在一个函数中,我在读取.ini文件之前有一个return,现在我希望它有相同的返回类型,但返回到.yaml文件。我该怎么做? 有人能告诉我这是什么样的退货吗?你知道吗
到.yaml文件
stream = file('file.yaml', 'r')
return yaml.load(stream) ????
return yaml.dump(stream) ???? ????
到.ini文件
config = ConfigParser.ConfigParser()
config.read('file.ini')
return config
如果我打印config
,我有:
ConfigParser.ConfigParser instance at 0x000000000124FE08
既然你做了
config = ConfigParser.ConfigParser()
,这是肯定的config
是一个ConfigParser
实例。有各种各样的特殊方法 你的程序将假定能够调用。你知道吗如果不想更改程序的其余部分,应该设置YAML配置文件 根目录下有一个映射,其键是INI文件中的节名, 值再次映射,表示每个部分的键值对:
然后加载YAML文件并将结果数据结构转换为ConfigParser实例 然后可以将其用作从INI文件读取的ConfigParser:
它给出:
因此
config
(假设您的file.yaml
是合理的)可以传递给程序的其余部分。你知道吗请注意:
config.write()
只是显示结果是ConfigParser
实例, 在最后的节目里你不需要这个。你知道吗您的YAML加载示例没有关闭输入流,这是不好的做法。使用
with
语句或将pathlib.Path
传递给yaml.load
:可以通过以下方式直接加载到
ConfigParser
实例 在YAML文件中标记根级映射并提供 适当的标签处理,但我不认为这是值得的。你的 最好花点时间把剩下的节目改成 假设处理data
(两级字典)的部分 结构)直接。相关问题 更多 >
编程相关推荐