使用ConfigParser-Python更新字段

2024-04-19 02:30:24 发布

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

我以为ConfigParser模块的set方法会更新给定的字段,但是,更改似乎只保留在内存中,不会进入配置文件。这是正常的行为吗?

我也尝试过write方法,但是我得到的是另一个复制的部分,到目前为止这不是我想要的。

这是一个代表我所做的事情的样本:

import sys
import ConfigParser 

   if __name__=='__main__':    
   cfg=ConfigParser.ConfigParser()
   path='./../whatever.cfg/..'
   c=cfg.read(path)
   print cfg.get('fan','enabled')
   cfg.set('fan','enabled','False')       
   c=cfg.read(path)
   print cfg.get('fan','enabled')

Tags: 模块path方法内存importreadget配置文件
3条回答
  1. 打开配置文件
  2. 使用ConfigParser读取内容
  3. 关闭文件
  4. 立即更新内存中的配置
  5. 用w+打开同一个文件
  6. 将更新的内存内容写入文件
  7. 关闭文件
from ConfigParser import SafeConfigParser
parser = SafeConfigParser()
parser.read('properties.ini')
dhana = {'key': 'valu11'}
parser.set('CAMPAIGNS', 'zoho_next_campaign_map', str(dhana))
with open("properties.ini", "w+") as configfile:
    parser.write(configfile)

是的,通常set对内存中的信息进行操作,而不是对最初从中读取信息的文件进行操作。

write应该是你想要的。你到底是怎么使用它的,它到底做了什么,和你想要的有什么不同?

顺便说一下,除非有特殊原因,否则通常应该使用ConfigParser.SafeConfigParser,而不是ConfigParser.ConfigParser

继续使用Python 3.x SafeConfigParser将被合并/重命名为ConfigParser,因此SafeConfigParser最终将被弃用并逐步淘汰。

相关问题 更多 >