用Python修改INI文件
我有一个INI文件需要用Python修改。我正在查看用Python修改INI文件,python,configparser,Python,Configparser,我有一个INI文件需要用Python修改。我正在查看ConfigParser模块,但仍然有问题。我的代码是这样的: config= ConfigParser.RawConfigParser() config.read('C:\itb\itb\Webcams\AMCap1\amcap.ini') config.set('Video','Path','C:\itb\itb') 但是在运行此代码后查看amcap.ini文件时,它保持不变。谁能告诉我我做错了什么 ConfigParser不会自动写回磁
ConfigParser
模块,但仍然有问题。我的代码是这样的:
config= ConfigParser.RawConfigParser()
config.read('C:\itb\itb\Webcams\AMCap1\amcap.ini')
config.set('Video','Path','C:\itb\itb')
但是在运行此代码后查看
amcap.ini
文件时,它保持不变。谁能告诉我我做错了什么 ConfigParser不会自动写回磁盘上的文件。为此,请使用;它以一个打开的文件对象作为参数
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)
您可以使用
python benedict
,它是一个dict子类,为大多数常见格式(包括ini
)提供规范化的I/O支持
从benedict导入benedict
#路径可以是ini字符串、文件路径或远程url
path='path/to/config.ini'
d=本尼迪克特(路径)
#用你的口授做些事情
# ...
#将其写回磁盘
d、 至_ini(文件路径=路径)
它经过了良好的测试和记录,请查看自述文件以查看所有功能:
使用pip安装:pip安装python benedict
注意:我是这个项目的作者我尝试了
config.write('C:\itb\itb\Webcams\AMCap1\amcap.ini')
,但出现了错误。我必须先以写入或追加的方式打开文件吗?您需要一个open file对象,如我的示例所示;它不能与文件名(字符串)一起使用。@MartijnPieters如果我想为每个配置条目设置多个值(例如,本例中的多个路径),该怎么办?我可以把它们作为第三个参数放在一个列表中,但是配置有这个列表值。然后,当我通过ConfigParser()读取它们时,我得到一个包含列表的字符串。当然是可解析的,但并不理想@Pyderman:第三个值总是转换为字符串。如果您需要更复杂的格式,请发明自己的格式(例如,,'.join(listobj)
写入时,[item.strip()用于value中的项。拆分(',')]
读取时,如果您需要支持多个项)