ConfigParser - 将整个部分作为字典获取并设置值
ConfigParser - get entire section as dict and set values
我想做的(理想情况下)是使用 with
和字典一次设置整个参数部分。经过一些试验,我想出了下面的代码,它引发了 AttributeError
:
import configparser
import os
CONFIG_PATH = os.path.abspath(os.path.dirname(__file__)) + '/config.ini'
config = configparser.ConfigParser()
assert open(CONFIG_PATH)
config.read(CONFIG_PATH)
with dict(config.items('Settings')) as c:
c['username'] = input('Enter username: ')
config.ini 文件:
[Settings]
username = ''
回溯:
Traceback (most recent call last):
File "test.py", line 9, in <module>
with dict(config.items('Settings')) as c:
AttributeError: __enter__
我觉得我在这里使用 configparser
是错误的,但我想写一些漂亮的代码来设置 config.ini
参数。
您不能将字典与 with
一起使用,因为字典不是上下文管理器。
with dict() as d:
print d
输出:
Traceback (most recent call last):
File "Main.py", line 6, in <module>
with dict() as d:
AttributeError: __exit__
https://paiza.io/projects/aPGRmOEmydbJL2ZeRtF-3A?language=python
对象必须定义 __enter__
和 __exit__
才能用作上下文管理器。
文档:http://book.pythontips.com/en/latest/context_managers.html
我想做的(理想情况下)是使用 with
和字典一次设置整个参数部分。经过一些试验,我想出了下面的代码,它引发了 AttributeError
:
import configparser
import os
CONFIG_PATH = os.path.abspath(os.path.dirname(__file__)) + '/config.ini'
config = configparser.ConfigParser()
assert open(CONFIG_PATH)
config.read(CONFIG_PATH)
with dict(config.items('Settings')) as c:
c['username'] = input('Enter username: ')
config.ini 文件:
[Settings]
username = ''
回溯:
Traceback (most recent call last):
File "test.py", line 9, in <module>
with dict(config.items('Settings')) as c:
AttributeError: __enter__
我觉得我在这里使用 configparser
是错误的,但我想写一些漂亮的代码来设置 config.ini
参数。
您不能将字典与 with
一起使用,因为字典不是上下文管理器。
with dict() as d:
print d
输出:
Traceback (most recent call last):
File "Main.py", line 6, in <module>
with dict() as d:
AttributeError: __exit__
https://paiza.io/projects/aPGRmOEmydbJL2ZeRtF-3A?language=python
对象必须定义 __enter__
和 __exit__
才能用作上下文管理器。
文档:http://book.pythontips.com/en/latest/context_managers.html