返回信息流ini文件的内容为
[General]
StartWithLastProfile=1
[Profile0]
Name=default
IsRelative=1
Path=Profiles/pwcqvi1x.default
Default=1
需求:把isrelative字段的值改为0
代码如下
import sys,os
import ConfigParser
class Db_Connector:
def __init__(self, config_file_path):
cf = ConfigParser.ConfigParser()
cf.read(config_file_path)
s = cf.sections()
print 'section:', s
o = cf.options("Profile0")
print 'options:', o
v = cf.items("Profile0")
print 'db:', v
name = cf.get("Profile0", "Name")
isrelative = cf.getint("Profile0", "IsRelative")
path = cf.get("Profile0", "Path")
last = cf.get("Profile0", "Default")
print name,isrelative,path,last
cf.set("Profile0","IsRelative","0")
cf.write(open("config_file_path","w+"))
cf.write(sys.stdout)
if __name__ == "__main__":
f = Db_Connector("C:\Users\.......Firefox\profiles.ini")
程序输入结果如下
section: ['General', 'Profile0']
options: ['name', 'isrelative', 'path', 'default']
db: [('name', 'default'), ('isrelative', '1'), ('path', 'Profiles/pwcqvi1x.default'), ('default', '1')]
default 1 Profiles/pwcqvi1x.default 1
[General]
startwithlastprofile = 1
[Profile0]
name = default
isrelative = 0
path = Profiles/pwcqvi1x.default
default = 1
输出中 isrelative已经改为0 但是打开原来的Ini文件 值没有成功修改,还是原来的1, 这是为什么呢?
这是一条镜像帖。来源:北邮人论坛 / python / #9085同步于 2015/10/16
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖
使用ConfigParser write, 写入ini文件失败
christmas7m
2015/10/16镜像同步2 回复
订阅后,新回复会通过你的通知中心匿名送达。
2 条回复
@christmas7m
我复制lz的代码跑了一下,发现本地多了一个config_file_path文件,所以问题出在文件名称上了。
change
cf.write(open("config_file_path","w+"))
to
cf.write(open(config_file_path,"w+"))
不过还是有个小问题,所有option的值都变成小写了。
好像ConfigParser无视大小写,重复执行没报错。
嗯嗯 现在可以了
谢谢哈
【 在 XiaoBiShou 的大作中提到: 】
: @christmas7m
: 我复制lz的代码跑了一下,发现本地多了一个config_file_path文件,所以问题出在文件名称上了。
: change
: ...................