溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python?configparser模塊怎么使用

發(fā)布時(shí)間:2022-12-28 09:50:06 來(lái)源:億速云 閱讀:95 作者:iii 欄目:開(kāi)發(fā)技術(shù)

本文小編為大家詳細(xì)介紹“Python configparser模塊怎么使用”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“Python configparser模塊怎么使用”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來(lái)學(xué)習(xí)新知識(shí)吧。

1 configparser 使用get方式讀取.ini配置文件的配置內(nèi)容

(1)首先編寫(xiě)如下所示的env.ini配置文件

[server]
ip=192.168.1.200
port=22
username=root
password=root

[personal]
name=redrose2100
city=nanjing
github=redrose2100.github.io

(2) 編寫(xiě)解析.ini配置文件的python代碼

import configparser

config=configparser.ConfigParser()
config.read("env.ini","utf-8")


print(config.get("server","ip"))
print(config.get("personal","name"))

運(yùn)行結(jié)果為:

192.168.1.200
redrose2100

2 使用數(shù)組下標(biāo)的方式讀取.ini配置文件的內(nèi)容

env.ini的內(nèi)容同上述1中的內(nèi)容

通過(guò)數(shù)組下標(biāo)的方式讀取配置文件內(nèi)容的代碼如下:

import configparser

config=configparser.ConfigParser()
config.read("env.ini","utf-8")


print(config["server"]["ip"])
print(config["personal"]["name"])

執(zhí)行結(jié)果如下:

192.168.1.200
redrose2100

3 使用configparser寫(xiě)配置文件

import configparser

config=configparser.ConfigParser()

config["server"]={
    "ip":"192.138.1.200",
    "port":22,
    "username":"root",
    "password":"root"
}

config["personal"]={
    "name":"redrose2100",
    "city":"nanjing"
}

with open("test.ini","w") as f:
    config.write(f)

執(zhí)行之后,在當(dāng)前目錄下會(huì)生成一個(gè)test.ini文件,其內(nèi)容如下:

[server]
ip = 192.138.1.200
port = 22
username = root
password = root

[personal]
name = redrose2100
city = nanjing

4 configparser 對(duì)section常用的操作:

  • (1)has_section(section) 判斷讀取的config對(duì)象是否還有指定的section

  • (2)sections() 獲取讀取到的config對(duì)象的所有sections列表

  • (3)add_section(section) 給讀取到的config對(duì)象增加一個(gè)section,注意此時(shí)增加的section只是在config對(duì)象中,并沒(méi)有寫(xiě)入到ini配置文件中

  • (4)remove_section(section) 給讀取到的config對(duì)象刪除一個(gè)section

實(shí)例代碼如下所示:

import configparser

config=configparser.ConfigParser()
config.read("env.ini","utf-8")
print(config.has_section("server"))
print(config.sections())
config.add_section("kafka")
print(config.sections())
config.remove_section("kafka")
print(config.sections())

運(yùn)行結(jié)果如下:

import configparser

config=configparser.ConfigParser()
config.read("env.ini","utf-8")
print(config.has_section("server"))
print(config.sections())
config.add_section("kafka")
print(config.sections())
config.remove_section("kafka")
print(config.sections())

5 configparser對(duì)option常用的操作,如下代碼演示:

import configparser

config=configparser.ConfigParser()
config.read("env.ini","utf-8")
print(config.has_option("server","ip"))
print(config.options("server"))
config.set("server","test","test")
print(config.options("server"))
config.remove_option("server","test")
print(config.options("server"))

執(zhí)行結(jié)果為:

True
['ip', 'port', 'username', 'password']
['ip', 'port', 'username', 'password', 'test']
['ip', 'port', 'username', 'password']

6 configparser的對(duì)象可以類(lèi)似字典一樣使用,但是類(lèi)型不是字典,代碼演示如下:

import configparser

config=configparser.ConfigParser()
config.read("env.ini","utf-8")

for key in config["server"].keys():
    print(key)

for key,value in config["server"].items():
    print(key,value)

for value in config["server"].values():
    print(value)

item=config["server"].popitem()
print(type(item))
print(item)

port=config["server"].pop("port")
print(port)

for key,value in config["server"].items():
    print(key,value)

username=config["server"].get("username","no found")
print(username)

print(type(config["server"]))

運(yùn)行結(jié)果如下:

ip
port
username
password
ip 192.168.1.200
port 22
username root
password root
192.168.1.200
22
root
root
<class 'tuple'>
('ip', '192.168.1.200')
22
username root
password root
root
<class 'configparser.SectionProxy'>

7 可以將獲取的類(lèi)型直接轉(zhuǎn)換為期望的數(shù)據(jù)類(lèi)型,可用的方法有:

  • getint

  • getboolean

  • getfloat

  • get

下面將配置文件更新如下內(nèi)容:

[server]
ip=192.168.1.200
port=22
username=root
password=root
is_linux=True
price=100.24

[personal]
name=redrose2100
city=nanjing
github=redrose2100.github.io

實(shí)例代碼如下:

import configparser

config=configparser.ConfigParser()
config.read("env.ini","utf-8")

ip=config["server"].get("ip")
port=config["server"].getint("port")
is_linux=config["server"].getboolean("is_linux")
price=config["server"].getfloat("price")
print(ip,type(ip))
print(port,type(port))
print(is_linux,type(is_linux))
print(price,type(price))

運(yùn)行結(jié)果如下:

192.168.1.200 <class 'str'>
22 <class 'int'>
True <class 'bool'>
100.24 <class 'float'>

8 configparser標(biāo)準(zhǔn)庫(kù)對(duì)解析.conf文件與解析.ini文件的使用方法是完全一樣的,下面只演示一部分:

創(chuàng)建一個(gè)env.conf文件,內(nèi)容如下:

[server]
ip=192.168.1.200
port=22
username=root
password=root
is_linux=True
price=100.24

[personal]
name=redrose2100
city=nanjing
github=redrose2100.github.io

編寫(xiě)如下代碼:

import configparser


config=configparser.ConfigParser()
config.read("env.conf","utf-8")


print(config.get("server","ip"))
print(config.get("personal","name"))

print(config["server"]["ip"])
print(config["personal"]["name"])

運(yùn)行結(jié)果如下:

192.168.1.200
redrose2100
192.168.1.200
redrose2100

讀到這里,這篇“Python configparser模塊怎么使用”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識(shí)點(diǎn)還需要大家自己動(dòng)手實(shí)踐使用過(guò)才能領(lǐng)會(huì),如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI