怎样在Python中使用设置文件最有效?

2024-05-22 19:18:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个命令行脚本,运行时有很多参数。我现在已经到了一个论点太多的地步,我也想有一些论点的字典形式。

所以为了简化操作,我想用一个设置文件来运行这个脚本。我不知道该用什么库来解析文件。这样做的最佳做法是什么?我当然可以自己敲出一些东西,但如果有图书馆,我会全神贯注的。

一些“要求”:

  • 与其使用pickle,我希望它是一个可以轻松读取和编辑的直接文本文件。
  • 我希望能够在其中添加类似字典的数据,即应该支持某种形式的嵌套。

一个简化的伪示例文件:

truck:
    color: blue
    brand: ford
city: new york
cabriolet:
    color: black
    engine:
        cylinders: 8
        placement: mid
    doors: 2

Tags: 文件数据命令行脚本编辑参数字典图书馆
3条回答

我觉得这个最有用也最容易用 https://wiki.python.org/moin/ConfigParserExamples

您只需创建一个“myfile.ini”,如下所示:

[SectionOne]
Status: Single
Name: Derek
Value: Yes
Age: 30
Single: True

[SectionTwo]
FavoriteColor=Green
[SectionThree]
FamilyName: Johnson

[Others]
Route: 66

检索数据如下:

>>> import ConfigParser
>>> Config = ConfigParser.ConfigParser()
>>> Config
<ConfigParser.ConfigParser instance at 0x00BA9B20>
>>> Config.read("myfile.ini")
['c:\\tomorrow.ini']
>>> Config.sections()
['Others', 'SectionThree', 'SectionOne', 'SectionTwo']
>>> Config.options('SectionOne')
['Status', 'Name', 'Value', 'Age', 'Single']
>>> Config.get('SectionOne', 'Status')
'Single'

您可以有一个常规的Python模块,比如config.py,如下所示:

truck = dict(
    color = 'blue',
    brand = 'ford',
)
city = 'new york'
cabriolet = dict(
    color = 'black',
    engine = dict(
        cylinders = 8,
        placement = 'mid',
    ),
    doors = 2,
)

像这样使用:

import config
print config.truck['color']  

您提供的示例配置实际上是有效的YAML。事实上,YAML满足了您的所有需求,用大量语言实现,并且非常人性化。我强烈建议你使用它。PyYAML project提供了一个很好的python模块,它实现了YAML。

使用yaml模块非常简单:

import yaml
config = yaml.safe_load(open("path/to/config.yml"))

相关问题 更多 >

    热门问题