-
Notifications
You must be signed in to change notification settings - Fork 30
/
Copy pathSettingData.py
77 lines (68 loc) · 2.62 KB
/
SettingData.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#coding:utf-8
import ConfigParser
from ConfigParser import SafeConfigParser
config = SafeConfigParser()
class HandleSetting(object):
def __init__(self,configfile,inidict=None):
self.configfile = configfile
self.inidict = inidict
def ReadConfFile(self):
config.read(self.configfile)
cdict = {}
for section in config.sections():
cdict[section] = {}
for option in config.options(section):
if config.get(section, option) in ["True","true","False","false"]:
cdict[section][option] = config.getboolean(section, option)
elif config.get(section, option).isdigit():
cdict[section][option] = config.getint(section, option)
else:
cdict[section][option] = config.get(section, option)
return cdict
def ReadSingleConf(self,section,option):
f = open(self.configfile)
f.seek(0)
config.readfp(f)
f.close()
return config.getboolean(section, option)
def WriteSingleConf(self,section,option,value):
f = open(self.configfile,'w')
#f.seek(0)
#config.readfp(f)
config.set(section,option,value)
config.write(f)
f.close()
def WriteConfFile(self):
for section,options in self.inidict.items():
for key,value in options.items():
try:
config.set(section,key,str(value))
except ConfigParser.NoSectionError:
config.add_section(section)
self.WriteConfFile()
with open(self.configfile,'w') as f:
config.write(f)
if __name__ == "__main__":
f = HandleSetting("setting.ini")
iniDict = f.ReadConfFile()
print iniDict["base"]["startup"]
print iniDict["base"]["autoupdate"]
print iniDict["log"]["log_size"]
print iniDict
f2 = HandleSetting("setting2.ini",iniDict)
f2.WriteConfFile()
# f = open("setting.ini",'r')
# f.seek(0)
# scp.readfp(f) ##读取文件
# for section in scp.sections(): ## scp.sections 为全部 section, 进入循环读取
# print "[%s]\n" % section
# options = scp.options(section) ## 所有的option
# for option in options:
# ## scp.get(section, option) 为value, 此处打印所有的option 和 value
# print "%s: %s" %(option,scp.get(section,option))
# print "--" * 20
#
# ## 单独操作读取配置文件
# print scp.get('base','startup')
# print scp.get('base','tray_minimize')
# print scp.get('base','autoupdate')