在YAML文件中读取配置值的适当方法

问题描述 投票:0回答:1

我对python程序的配置存储在yaml文件中;

config = yaml.load('/some/folder/path/myconfig.yaml'))

我在开头附近的一个区域中的python脚本中早期加载了所有配置值

infldr = config['myapp1']['inputFolder']
outfldr = config['myapp1']['outputFolder']

在后面的部分中,我将复制yaml配置值的变量称为变量;

原始方法

filename = 'blahblah.blah'
copyfile(infldr + filename, outfldr + filename)

它很好用,但是我想知道,直接引用yaml值会更“ pythonic”或更高效;

可能的新方法

copyfile(config['myapp1']['inputFolder'] + filename, 
         config['myapp1']['outputFolder'] + filename)

如果我遍历文件夹中的所有文件,哪个更好?还有什么pythonic?什么时候使用原始方法与新方法比较合适?我怀疑python yaml库每次都会解析值以获取它,并且将值一次复制到变量中会更有效。我是对还是错?

python yaml pyyaml
1个回答
0
投票

简短回答:在我看来,这主要是个人喜好。

稍长的答案:常见的Python格言是“简单胜于复杂”。最具可读性和最容易理解的是最佳解决方案。

就您对解析的关注而言,通过yaml.load获得的配置对象仅实例化一次。再次从文件中抓取配置字典时,会从文件中重新加载config字典。

最终注释

:如果在适当位置编辑变量,最终可能会更改原始配置对象。使用嵌套字典(例如由yaml.load生成的字典)特别容易做到这一点。值得注意的是,Python中的“变量”实际上只是带有一些语法糖的指针引用-请注意这一点,并在必要时复制对象以避免覆盖原始对象。

© www.soinside.com 2019 - 2024. All rights reserved.