本文正在參加「Python主題月」,詳情查看 活動連接python
在實際工做中,咱們常常會用到配置文件,對於配置文件的讀寫是基本操做,今天咱們就一塊兒來學習如何用 Python
輕鬆實現配置文件的讀寫操做。markdown
configparser
是 Python
內置的解析配置文件的庫,他能夠實現對 ini
文件的讀寫,同時也能夠對配置文件中的佔位符進行解析,總之是一個很好用,頗有用的庫。app
建立一個名爲 info.ini
的配置文件,內容以下:ide
[base]
name = phyger
age = 18
[nova]
port = 9292
user = nova
pwd = t@123
複製代碼
以上,帶方括號字符名爲
section
,即配置塊。形如k=v
格式的字符名爲option
,即配置項。post
配置文件和代碼在同路徑下,代碼以下:學習
import configparser
config=configparser.ConfigParser()
config.read('info.ini')
print(config)
複製代碼
輸出以下:ui
<configparser.ConfigParser object at 0x000001CCBC3B8AC8>
複製代碼
如上,config
爲一個 ConfigParser
對象。lua
import configparser
config=configparser.ConfigParser()
config.read('info.ini')
print(config['base'])
複製代碼
輸出以下:url
<Section: base>
複製代碼
如上,返回結果爲一個 Section
對象名爲 base
。spa
import configparser
config=configparser.ConfigParser()
config.read('info.ini')
print(config['base']['name'])
複製代碼
輸出以下:
phyger
複製代碼
如上,返回了配置文件中,base
配置塊中的 name
的值爲 phyger
。
import configparser
config=configparser.ConfigParser()
config.read('info.ini')
print(config.get('base','name'))
複製代碼
使用 get
方法和上面的切片法得出的結果是一致的。
import configparser
config=configparser.ConfigParser()
config.read('info.ini')
print(config.items('base'))
複製代碼
輸出以下:
[('name', 'phyger'), ('age', '18')]
複製代碼
修改配置文件以下:
[base]
name = phyger
age = 18
msg = %(name)s-%(age)s
[nova]
port = 9292
user = nova
pwd = t@123
複製代碼
代碼:
import configparser
config=configparser.ConfigParser()
config.read('info.ini')
print(config.get('base','msg'))
複製代碼
輸出以下:
phyger-18
複製代碼
需求:新增一個名爲 hello
的 section
,添加一條 option
。
import configparser
# 建立ConfigParser對象
config=configparser.ConfigParser()
# 讀取配置文件
config.read('info.ini')
print(config.get('base','msg'))
# 添加section
config.add_section('hello')
# 添加option
config['hello']['key']='value'
# 將config對象寫入配置文件
with open('info.ini',mode='w') as fp:
config.write(fp)
複製代碼
寫入後的配置文件:
[base]
name = phyger
age = 18
msg = %(name)s-%(age)s
[nova]
port = 9292
user = nova
pwd = t@123
[hello]
key = value
複製代碼
代碼運行過程當中修改 option
,後續代碼可以用到新的 option
。
import configparser
# 建立ConfigParser對象
config=configparser.ConfigParser()
# 讀取配置文件
config.read('info.ini')
name1=config.get('base','name')
print('on start, my name is',name1)
# 修改option
config['base']['name']='flyboy'
# 將config對象寫入配置文件
with open('info.ini',mode='w') as fp:
config.write(fp)
# 從新獲取option (這裏不須要從新read,就能拿到新的數據,能夠解決py做爲配置文件的沒法刷新數據的問題)
name2=config.get('base','name')
print('after modified, my name is',name2)
複製代碼
輸出以下:
on start, my name is phyger
after modified, my name is flyboy
複製代碼