使用到的包:ConfigParser 文档
代码托管位置 github-pytools
写个项目,用到数据库,多个地方使用,不能硬编码。很类似java的properties文件
Python支持ini文件的读取
db_config.ini
1
2
3
4
5
6
7
8
|
[
baseconf
]
host
=
127.0.0.1
port
=
3306
user
=
root
password
=
root
db_name
=
evaluting
_sys
[
concurrent
]
processor
=
20
|
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
|
#!/usr/bin/python
# -*- coding:utf-8 -*-
#author: lingyue.wkl
#desc: use to db ops
#---------------------
#2012-02-18 created
#---------------------
import
sys
,
os
import
ConfigParser
def
test
(
config_file_path
)
:
cf
=
ConfigParser
.
ConfigParser
(
)
cf
.
read
(
config_file_path
)
s
=
cf
.
sections
(
)
print
'section:'
,
s
o
=
cf
.
options
(
"baseconf"
)
print
'options:'
,
o
v
=
cf
.
items
(
"baseconf"
)
print
'db:'
,
v
db_host
=
cf
.
get
(
"baseconf"
,
"host"
)
db_port
=
cf
.
getint
(
"baseconf"
,
"port"
)
db_user
=
cf
.
get
(
"baseconf"
,
"user"
)
db_pwd
=
cf
.
get
(
"baseconf"
,
"password"
)
print
db_host
,
db_port
,
db_user
,
db_pwd
cf
.
set
(
"baseconf"
,
"db_pass"
,
"123456"
)
cf
.
write
(
open
(
"config_file_path"
,
"w"
)
)
if
__name__
==
"__main__"
:
test
(
"../conf/db_config.ini"
)
|
支持命令行+import两种
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
|
#!/usr/bin/python
# -*- coding:utf-8 -*-
#author: lingyue.wkl
#desc: use to read ini
#---------------------
#2012-02-18 created
#2012-09-02 changed for class support
#---------------------
import
sys
,
os
,
time
import
ConfigParser
class
Config
:
def
__init__
(
self
,
path
)
:
self
.
path
=
path
self
.
cf
=
ConfigParser
.
ConfigParser
(
)
self
.
cf
.
read
(
self
.
path
)
def
get
(
self
,
field
,
key
)
:
result
=
""
try
:
result
=
self
.
cf
.
get
(
field
,
key
)
except
:
result
=
""
return
result
def
set
(
self
,
filed
,
key
,
value
)
:
try
:
self
.
cf
.
set
(
field
,
key
,
value
)
cf
.
write
(
open
(
self
.
path
,
'w'
)
)
except
:
return
False
return
True
def
read_config
(
config_file_path
,
field
,
key
)
:
cf
=
ConfigParser
.
ConfigParser
(
)
try
:
cf
.
read
(
config_file_path
)
result
=
cf
.
get
(
field
,
key
)
except
:
sys
.
exit
(
1
)
return
result
def
write_config
(
config_file_path
,
field
,
key
,
value
)
:
cf
=
ConfigParser
.
ConfigParser
(
)
try
:
cf
.
read
(
config_file_path
)
cf
.
set
(
field
,
key
,
value
)
cf
.
write
(
open
(
config_file_path
,
'w'
)
)
except
:
sys
.
exit
(
1
)
return
True
if
__name__
==
"__main__"
:
if
len
(
sys
.
argv
)
4
:
sys
.
exit
(
1
)
config_file_path
=
sys
.
argv
[
1
]
field
=
sys
.
argv
[
2
]
key
=
sys
.
argv
[
3
]
if
len
(
sys
.
argv
)
==
4
:
print
read_config
(
config_file_path
,
field
,
key
)
else
:
value
=
sys
.
argv
[
4
]
write_config
(
config_file_path
,
field
,
key
,
value
)
|