網站首頁 編程語言 正文
1 configparser 使用get方式讀取.ini配置文件的配置內容
(1)首先編寫如下所示的env.ini配置文件
[server]
ip=192.168.1.200
port=22
username=root
password=root
[personal]
name=redrose2100
city=nanjing
github=redrose2100.github.io
(2) 編寫解析.ini配置文件的python代碼
import configparser
config=configparser.ConfigParser()
config.read("env.ini","utf-8")
print(config.get("server","ip"))
print(config.get("personal","name"))
運行結果為:
192.168.1.200
redrose2100
2 使用數組下標的方式讀取.ini配置文件的內容
env.ini的內容同上述1中的內容
通過數組下標的方式讀取配置文件內容的代碼如下:
import configparser
config=configparser.ConfigParser()
config.read("env.ini","utf-8")
print(config["server"]["ip"])
print(config["personal"]["name"])
執(zhí)行結果如下:
192.168.1.200
redrose2100
3 使用configparser寫配置文件
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í)行之后,在當前目錄下會生成一個test.ini文件,其內容如下:
[server]
ip = 192.138.1.200
port = 22
username = root
password = root
[personal]
name = redrose2100
city = nanjing
4 configparser 對section常用的操作:
- (1)has_section(section) 判斷讀取的config對象是否還有指定的section
- (2)sections() 獲取讀取到的config對象的所有sections列表
- (3)add_section(section) 給讀取到的config對象增加一個section,注意此時增加的section只是在config對象中,并沒有寫入到ini配置文件中
- (4)remove_section(section) 給讀取到的config對象刪除一個section
實例代碼如下所示:
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())
運行結果如下:
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對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í)行結果為:
True
['ip', 'port', 'username', 'password']
['ip', 'port', 'username', 'password', 'test']
['ip', 'port', 'username', 'password']
6 configparser的對象可以類似字典一樣使用,但是類型不是字典,代碼演示如下:
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"]))
運行結果如下:
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 可以將獲取的類型直接轉換為期望的數據類型,可用的方法有:
- getint
- getboolean
- getfloat
- get
下面將配置文件更新如下內容:
[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
實例代碼如下:
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))
運行結果如下:
192.168.1.200 <class 'str'>
22 <class 'int'>
True <class 'bool'>
100.24 <class 'float'>
8 configparser標準庫對解析.conf文件與解析.ini文件的使用方法是完全一樣的,下面只演示一部分:
創(chuàng)建一個env.conf文件,內容如下:
[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
編寫如下代碼:
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"])
運行結果如下:
192.168.1.200
redrose2100
192.168.1.200
redrose2100
原文鏈接:https://blog.csdn.net/redrose2100/article/details/121297955
相關推薦
- 2022-12-10 Go?web中cookie值安全securecookie庫使用原理_Golang
- 2024-02-25 關于數據庫時間為datetime,前臺數據不正常級時區(qū)+8問題
- 2022-12-26 .NET?6實現滑動驗證碼的示例詳解_實用技巧
- 2022-11-03 一文詳解C++子類函數為什么不能重載父類函數_C 語言
- 2022-12-29 Kotlin數據存儲方式全面總結講解_Android
- 2021-12-13 C++繼承類成員訪問權限修飾符詳解_C 語言
- 2021-11-21 ASP.NET?Core應用JWT進行用戶認證及Token的刷新方案_實用技巧
- 2022-11-02 Python+eval函數實現動態(tài)地計算數學表達式詳解_python
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細win安裝深度學習環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發(fā)現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支