網站首頁 編程語言 正文
INI介紹
INI是英文“初始化”(initialization
)的縮寫,被用來對操作系統或特定程序初始化或進行參數設置。由節(section)、
鍵(key)、值(value)構成。在windows系統中有很多INI文件,例如“System32.ini”和“Win.ini”,相信大家并不陌生。Python
中操作配置文件的模塊為configparser,這個模塊可以用來解析與Windows上INI文件結構類似的文件。
關于configparser
在python2中該模塊名為Configparser,到python3才改為configparser,該模塊是用來解析?ini
?配置文件的解析器。
其作用就是使用模塊中的RawConfigParser()
、ConfigParser()
、SafeConfigParser()
這三個方法(任選一種),創建一
個對象使用對象的方法對指定的配置文件做增刪改查操作。
本次使用的python版本為3.8,編譯器使用pycharm。
INI文件格式
INI配置文件組成:
section
:表示一個區塊,由方括號及方括號中的名稱組成,section的范圍為當前方括號到下一個方括號的內容,如“DEFAULT”,“select”,“connect_mysql”。
- 大小寫和空格檢查:?section中的名稱在保存和獲取的時候是原樣保存和獲取的,即大小寫不一樣或者空格不一樣等都是不同的section;
- 重復性檢查:?同一個配置文件中section名稱不允許重復。
option
:表示section中的配置項,由key、分隔符和value組成的鍵值對,如“select”下的“broswer = Chrome”。
- 大小寫檢查:?key是大小寫不敏感的,保存進文件的時候會自動將key小寫保存,但value是大小寫敏感的;
- 空格檢查:?通過key獲取value時,會自動將文件中的key和value前后空格去掉再進行匹配,即文件中保存為'? broswer? ? ?= Chrome? ? ? '時,用'broswer'也可以獲取到對應的value值'Chrome';
- 跨多行檢查:?key是不能跨行的,但是value可以跨行,只要第二行及之后行的縮進與第一行不同即可,一直到下一個option為止;
- 重復性檢查:?和section一樣,同一section下的key是不允許重復的;
- 分隔符:?可以是等號“=”或者冒號“:”。
注釋:行注釋用井號“#”或者分號“;”表示,特別需要注意的是必須得是行開頭(前面可以有空格),用在行中間的就不會算作是注釋了。
DEFAULT
:這是一個特殊的section,會用作其他section的option取不到值時的備用值,或者可以理解為它是一個root,其他的section都是它的子section,但不是必須提供的。
讀取配置文件
import os import configparser conf = configparser.ConfigParser() # 類的實例化 curpath = os.path.dirname(os.path.realpath(__file__)) path = os.path.join(curpath,'read.ini') conf.read(path,encoding="utf-8") value = conf['select']['url'] print("通過read方法取得的值為:",value) value = conf.get('login','username') print('通過get方法取得的值:',value) value = conf.items('login') # 讀取一個section中的所有數據,返回一個列表 print("通過items方法取得的值:",value) value = conf.getint('connect_mysql','port') # 指定讀取數據的類型 print("指定數據類型取出的值:",value) section = conf.sections() # 讀取配置文件中所有section print(section)
運行結果
注意:?配置文件注釋有中文的,在python3中要加上參數encoding="utf-8",不然會報錯。
conf.read(path,encoding="utf-8")
寫入配置文件
import os import configparser conf = configparser.ConfigParser() # 類的實例化 curpath = os.path.dirname(os.path.realpath(__file__)) path = os.path.join(curpath,'read.ini') conf.add_section('login') # 添加一個新的section conf.set('login','username','admin') conf.set('login','password','123123') # 往配置文件寫入數據 conf.write(open(path,'a')) # 保存數據
運行以后查看配置文件,可以看到新的section已經寫入到文件中。
write寫入常用的兩種方式,第一種是刪除原文件內容,重新寫入:w
conf.write(open(path,'w'))
第二種是在原文件基礎上繼續寫入內容,追加模式寫入:a
conf.write(open(path,'a'))
總結
原文鏈接:https://blog.csdn.net/m0_59485658/article/details/123334710
相關推薦
- 2022-10-18 ASP.NET?MVC增加一條記錄同時添加N條集合屬性所對應的個體_實用技巧
- 2022-11-09 Python有序容器的?sort?方法詳解_python
- 2022-07-17 Android?studio實現簡單計算器的編寫_Android
- 2022-06-15 Golang?gin跨域解決方案示例_Golang
- 2023-07-02 oracle數據庫排序后如何獲取第一條數據_oracle
- 2022-08-25 windows下搭建Consul集群_云其它
- 2022-12-03 Keepalived如何實現Nginx高可用_nginx
- 2022-08-18 利用Redis實現訂單30分鐘自動取消_Redis
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支