python ConfigParser 配置讀寫

2022-01-22 13:59:20 字數 4571 閱讀 2367

我們寫程式的時候一般都會寫程式包的時候,很少硬編碼寫在一起,這有個很好的配置檔案包。

參考 configparser  和   configparser 的使用

configparser 是用來讀取配置檔案的包。配置檔案的格式如下:中括號 「」 內包含的為 section。section 下面為類似於 key-value 的配置內容。

[db]

db_host = 127.0.0.1

db_port = 22

db_user = root

db_pass = rootroot

[concurrent]

thread = 10

processor = 20

中括號 「」 內包含的為 section。緊接著 section 為類似於 key-value 的 options 的配置內容。

使用 configparser 首選需要初始化例項,並讀取配置檔案:

import

configparser

cf =configparser.configparser()

cf.read(

"配置檔名

")

s =cf.sections()

print

'section:

', s

將輸出(以下將均以簡介中配置檔案為例):

section['db

', '

concurrent

']

o = cf.options("db"

)print

'options:

', o

將輸出:

options[

'db_host

', '

db_port

', '

db_user

', '

db_pass

']

v = cf.items("db"

)print

'db:

', v

將輸出:

db[(

'db_host

', '

127.0.0.1

'), ('

db_port

', '

22'), ('

db_user

', '

root

'), ('

db_pass

', '

rootroot

')]

同樣的還有 getfloat、getboolean。

#

可以按照型別讀取出來

db_host = cf.get("

db", "

db_host")

db_port = cf.getint("

db", "

db_port")

db_user = cf.get("

db", "

db_user")

db_pass = cf.get("

db", "

db_pass")

#返回的是整型的

threads = cf.getint("

concurrent

", "

thread")

processors = cf.getint("

concurrent

", "

processor")

print

"db_host:

", db_host

print

"db_port:

", db_port

print

"db_user:

", db_user

print

"db_pass:

", db_pass

print

"thread:

", threads

print

"processor:

", processors

將輸出:

db_host127.0.0.1db_port22

db_userroot

db_passrootroot

thread10

processor20

cf.set("

db", "

db_pass

", "

zhaowei")

cf.write(open(

"test.conf

", "

w"))

cf.add_section('

liuqing')

cf.set(

'liuqing

', '

int', '15'

)cf.set(

'liuqing

', '

bool

', '

true')

cf.set(

'liuqing

', '

float

', '

3.1415')

cf.set(

'liuqing

', '

baz', '

fun'

)cf.set(

'liuqing

', '

bar', '

python')

cf.set(

'liuqing

', '

foo', '

%(bar)s is %(baz)s!')

cf.write(open(

"test.conf

", "

w"))

cf.remove_option('

liuqing

','int')

cf.remove_section(

'liuqing')

cf.write(open(

"test.conf

", "

w"))

#

!/usr/bin/env python

from configparser import

configparser

configfile="

f.txt

"config=configparser()

config.read(configfile)

print config.get('

messages

','greeting')

radius=input(config.get('

messages

','questions

')+'')

print config.get('

messages

','result')

print config.getfloat('

numbers

','pi

')*radius**2s=config.sections()

print

'section:',s

o=config.options('

messages')

print

'messages option:',o

v=config.items("

messages")

print

'message de xinxi:',v

config.add_section(

'liuyang1')

config.set(

'liuyang1

','int

','15')

config.set(

'liuyang

'1,'

hhhh

','hello world')

config.write(open(

"f.txt

","w"))

print config.get('

liuyang1

','int')

print config.get('

liuyang1

','hhhh')

#!/usr/bin/env python

import

configparser

import

sysconfig=configparser.configparser()

config.add_section(

"book1")

config.set(

"book1

","title

","hello world")

config.set(

"book1

","aut

","log")

config.write(open(

"f.txt

","w

"))

view code

python configparser配置檔案

通過配置檔案來管理不怎麼經常改變的引數,同時保證下次修改又能很快捷,就可以使用ini的配置來管理。以python3為作為直譯器,對應的包是configparser 配置檔案config.ini email qq sender zhangx mail.163.cn port 45smtp server...

python ConfigParser模組詳解

功能介紹 在程式中使用配置檔案來靈活的配置一些引數是一件很常見的事情,配置檔案的解析並不複雜,在python裡更是如此,在官方發布的庫中就包含有做這件事情的庫,那就是configparser,這裡簡單的做一些介紹。configparser解析的配置檔案的格式比較象ini的配置檔案格式,就是檔案中由多...

Python ConfigParser 注意事項

以這個非常簡單的典型配置檔案為例 default serveraliveinterval 45 compression yes compressionlevel 9 forwardx11 yes bitbucket.org user hg topsecret.server.com port 5002...