使用 ConfigParser Python 更改 ini 文件中的值
Posted
技术标签:
【中文标题】使用 ConfigParser Python 更改 ini 文件中的值【英文标题】:Change value in ini file using ConfigParser Python 【发布时间】:2015-03-13 21:18:11 【问题描述】:所以,我有这个 settings.ini :
[SETTINGS]
value = 1
还有这个python脚本
from ConfigParser import SafeConfigParser
parser = SafeConfigParser()
parser.read('settings.ini')
print parser.get('SETTINGS', 'value')
如您所见,我想读取值“1”并将其替换为另一个值。到目前为止,我所能做的就是阅读它。我在网上搜索了如何替换它,但没有找到。
【问题讨论】:
【参考方案1】:Python 官方docs on configparser
说明了如何读取、修改和编写配置文件。
import configparser
config = configparser.ConfigParser()
config.read('settings.ini')
config.set('SETTINGS', 'value','15')
with open('settings.ini', 'w') as configfile:
config.write(configfile)
【讨论】:
【参考方案2】:我遇到了问题:with open
其他方式:
import configparser
def set_value_in_property_file(file_path, section, key, value):
config = configparser.RawConfigParser()
config.read(file_path)
config.set(section,key,value)
cfgfile = open(file_path,'w')
config.write(cfgfile, space_around_delimiters=False) # use flag in case case you need to avoid white space.
cfgfile.close()
可用于修改java属性文件:file.properties
【讨论】:
删除了我原来的 config.ini 文件 @skpro19 我在 linux 上再次尝试并获胜。 ini 和属性文件的行为相同。删除文件没有问题。赢 (python 3.4.1) linux (python 3.6.8)。我正在尝试各种文件/目录访问配置 不需要证明为什么不使用with open ..
。您的解决方案有效。只有评论有一个小错字(“case case”)和Java相关的properties file注释在这里有点混乱,因为问题是关于INI file?️【参考方案3】:
以下示例将帮助更改 ini 文件中的值:
PROJECT_HOME="/test/"
parser = ConfigParser()
parser.read("/conf/cdc_config.ini".format(PROJECT_HOME))
parser.set("default","project_home",str(PROJECT_HOME))
with open('/conf/cdc_config.ini'.format(PROJECT_HOME), 'w') as configfile:
parser.write(configfile)
[default]
project_home = /Mypath/
【讨论】:
【参考方案4】:从文档的例子来看:
https://docs.python.org/2/library/configparser.html
parser.set('SETTINGS', 'value', '15')
# Writing our configuration file to 'example.ini'
with open('example.ini', 'wb') as configfile:
parser.write(configfile)
【讨论】:
对于 Python 3.5+,你必须使用 'w',而不是 'wb'! SafeConfigParser deprecated ``` DeprecationWarning: SafeConfigParser 类已在 Python 3.2 中重命名为 ConfigParser。此别名将在以后的版本中删除。直接使用 ConfigParser。 'os':operating_system, 'arch':arch) ``` 如果你让你的代码成为一个完整的例子,它会显示parser
的声明并且文件名将匹配给定的问题,即'settings.ini'
以实际更改文件内容.以上是关于使用 ConfigParser Python 更改 ini 文件中的值的主要内容,如果未能解决你的问题,请参考以下文章