使用Python修改INI文件

时间:2012-07-24 18:55:11

标签: python configparser

我有一个需要使用Python修改的INI文件。我正在调查ConfigParser模块但仍然遇到问题。我的代码是这样的:

config= ConfigParser.RawConfigParser()
config.read('C:\itb\itb\Webcams\AMCap1\amcap.ini')
config.set('Video','Path','C:\itb\itb')

但是在运行此代码后查看amcap.ini文件时,它仍未修改。谁能告诉我我做错了什么?

2 个答案:

答案 0 :(得分:29)

ConfigParser不会自动写回磁盘上的文件。使用.write() method表示;它需要一个打开的文件对象作为它的参数。

config= ConfigParser.RawConfigParser()
config.read(r'C:\itb\itb\Webcams\AMCap1\amcap.ini')
config.set('Video','Path',r'C:\itb\itb')
with open(r'C:\itb\itb\Webcams\AMCap1\amcap.ini', 'wb') as configfile:
    config.write(configfile)

答案 1 :(得分:0)

您可以使用 python-benedict,它是一个 dict 子类,可为大多数常见格式(包括 ini)提供规范化的 I/O 支持。

from benedict import benedict

# path can be a ini string, a filepath or a remote url
path = 'path/to/config.ini'

d = benedict.from_ini(path)

# do stuff with your dict
# ...

# write it back to disk
d.to_ini(filepath=path)

它已经过良好的测试和记录,请查看自述文件以查看所有功能:

https://github.com/fabiocaccamo/python-benedict

使用 pip 安装:pip install python-benedict

注意:我是这个项目的作者