-2

如何修改.ini文件?我的ini文件看起来像这样。我希望格式部分 ini 像这样更改[空格被替换为一个制表符,后跟 $] Format="[%TimeStamp%] $(%ThreadID%) $<%Tag%> $%_%"

[Sink:2]

Destination=TextFile
FileName=/usr/Desktop/A.log
RotationSize=5000000
MaxSize=50000000
MinFreeSpace=10000000
AutoFlush=true
Format="[%TimeStamp%] (%ThreadID%) <%Tag%> %_%"
Filter="%Severity% >= 0"

这是我写的

import ConfigParser
config = ConfigParser.RawConfigParser()
config.read('/usr/local/ZA/var/loggingSettings.ini')
format = config.get('Sink:2', 'Format')
tokens = "\t$".join(format.split())
print format
print tokens
config.set('Sink:2', 'Format', tokens)
newformat = config.get('Sink:2', 'Format')
print newformat

输出正是我想要的。但是当我打开 .ini 文件时,我在这里看不到任何变化?可能是当我再次阅读该部分时,它是从内存中加载的吗?我如何使更改永久化

4

1 回答 1

0

尝试使用该write方法。

with open('myconfig.ini', 'w') as f:    
    config.write(f)

当您阅读配置时,config.read('myconfig.ini')您已经完全“保存”了文件。现在你要做的是修改内容。

# Get a config object
config = RawConfigParser()
# Read the file 'myconfig.ini'
config.read('myconfig.ini')
# Read the value from section 'Orange', option 'Segue'
someVal = config.get('Orange', 'Segue')
# If the value is 'Sword'...
if someVal == 'Sword':
    # Then we set the value to 'Llama'
    config.set('Orange', 'Segue', 'Llama')
# Rewrite the configuration to the .ini file
with open('myconfig.ini', 'w') as myconfig:
    config.write(myconfig)
于 2013-03-07T14:44:52.633 回答