當前位置:首頁 » 編程語言 » pythonini文件讀寫

pythonini文件讀寫

發布時間: 2023-01-20 22:57:14

python3.9 讀寫ini文件

官方文檔

源碼看出,這個ini文檔,可以像字典一樣,使用「:」,但一般我們都使用「=」,並且值都不需要加引號
備注可以使用'#'或';',單獨一行,可縮進。
class ConfigParser(RawConfigParser):
class RawConfigParser(MutableMapping):

詳細看官網,不搬磚,列出幾個我自己常用的

⑵ INI的文件讀寫

讀取 (_In_LPCTSTRlpAppName,_In_LPCTSTRlpKeyName,_In_LPCTSTRlpDefault,_Out_LPTSTRlpReturnedString,_In_DWORDnSize,_In_LPCTSTRlpFileName);參數說明:
lpAppName (輸入參數)節名
lpKeyName (輸入參數)鍵名
lpDefault (輸入參數)默認值。INI讀取失敗時,得到這個值
lpReturnedString (輸出參數)讀取到的鍵值
nSize (輸入參數)lpReturnedString的緩沖區大小
lpFileName (輸入參數)INI文件的文件路徑
返回值:
讀取到的字元數,不包括末尾的''字元或L''字元。
寫入 (_In_LPCTSTRlpAppName,_In_LPCTSTRlpKeyName,_In_LPCTSTRlpString,_In_LPCTSTRlpFileName);參數說明:
lpAppName (輸入參數)節名
lpKeyName (輸入參數)鍵名
lpString (輸入參數)需要寫入的鍵值
lpFileName (輸入參數)INI文件的文件路徑
返回值:
寫入成功返回非零值,寫入失敗返回零值,可以用GetLastError函數得到錯誤原因。 #!/usr/bin/envpython#-*-coding:UTF-8-*-importConfigParseriniparser=ConfigParser.ConfigParser()#初始化一個INI讀寫類的對象iniparser.read('filename.ini')#讀取INI文件key_value=iniparser.get('section_name_1','key_name')#解析INI文件printkey_value#生成INI文件iniparser.add_section('section_name_2')iniparser.set('section_name_2','key_name','key_value')withopen('filename.ini','w')asinifile: iniparser.write(inifile)#寫入INI文件

⑶ 如何使用Python3讀寫INI配置文件

ini文件簡介
ini是我們常見到的配置文件格式之一。
ini是微軟Windows操作系統中的文件擴展名(也常用在其他系統)。
INI是英文「初始化(Initial)」的縮寫。正如該術語所表示的,INI文件被用來對操作系統或特定程序初始化或進行參數設置。
網路
通過它,可以將經常需要改變的參數保存起來(而且還可讀),使程序更加的靈活。
我先給出一個ini文件的示例。
[School]
ip = 10.15.40.123
mask = 255.255.255.0
gateway = 10.15.40.1
dns = 211.82.96.1

[Match]
ip = 172.17.29.120
mask = 255.255.255.0
gateway = 172.17.29.1
dns = 0.0.0.0

這個配置文件中保存的是不同場合下的IP設置參數。
下面將以生成和讀取這個配置文件為例,進行講解。
Python(v3)讀取方法
首先,Python讀取ini配置需要用到ConfigParser包,所以要先載入它。
import configparser

之後我們需要載入配置文件。
config=configparser.ConfigParser()

#IpConfig.ini可以是一個不存在的文件,意味著准備新建配置文件。
config.read("IpConfig.ini")

接下來,我們可以使用configparser.add_section()向配置文件中添加一個Section。
#添加節School
config.add_section("School")

注意:如果文件中已經存在相應的項目,則不能再增加同名的節。
然後可以使用configparser.set()在節School中增加新的參數。
#添加新的IP地址參數
config.set("School","IP","192.168.1.120")
config.set("School","Mask","255.255.255.0")
config.set("School","Gateway","192.168.1.1")
config.set("School","DNS","211.82.96.1")

你可以以同樣的方式增加其它幾項。
#由於ini文件中可能有同名項,所以做了異常處理
try:
config.add_section("Match")
config.set("Match","IP","172.17.29.120")
config.set("Match","Mask","255.255.255.0")
config.set("Match","Gateway","172.17.29.1")
config.set("Match","DNS","0.0.0.0")
except configparser.DuplicateSectionError:
print("Section 'Match' already exists")

增加完所有需要的項目後,要記得使用configparser.write()進行寫入操作。
config.write(open("IpConfig.ini", "w"))

以上就是寫入配置文件的過程。
接下來我們使用configparser.get()讀取剛才寫入配置文件中的參數。讀取之前要記得讀取ini文件。
ip=config.get("School","IP")
mask=config.get("School","mask")
gateway=config.get("School","Gateway")
dns=config.get("School","DNS")

print((ip,mask+"\n"+gateway,dns))

完整示例
下面是一個完整的示常式序,他將生成一個IpConfig.ini的配置文件,再讀取文件中的數據,輸出到屏幕上。
# -*- coding: utf-8 -*-

import configparser

#讀取配置文件
config=configparser.ConfigParser()
config.read("IpConfig.ini")

#寫入宿舍配置文件
try:
config.add_section("School")
config.set("School","IP","10.15.40.123")
config.set("School","Mask","255.255.255.0")
config.set("School","Gateway","10.15.40.1")
config.set("School","DNS","211.82.96.1")
except configparser.DuplicateSectionError:
print("Section 'School' already exists")

#寫入比賽配置文件
try:
config.add_section("Match")
config.set("Match","IP","172.17.29.120")
config.set("Match","Mask","255.255.255.0")
config.set("Match","Gateway","172.17.29.1")
config.set("Match","DNS","0.0.0.0")
except configparser.DuplicateSectionError:
print("Section 'Match' already exists")

#寫入配置文件
config.write(open("IpConfig.ini", "w"))

ip=config.get("School","IP")
mask=config.get("School","mask")
gateway=config.get("School","Gateway")
dns=config.get("School","DNS")

print((ip,mask+"\n"+gateway,dns))

總結
Python讀取ini文件還是十分簡單的,這里我給出的只是一些簡單的使用方法,如果想用更高級的功能,比如和注釋有關的功能。可以參考Pyhton官方文檔

⑷ 用python修改文件中指定的行數

python默認庫不能隨機讀寫文件。只能一次讀入和寫入。以下是示例代碼。

filename='setup.ini'
lines=[]
withopen(filename,'r',encoding='utf8')asf:
lines=f.readlines()
lines[167]='UPI1=Chinese'
lines[231]='UPI1=Chinese'
withopen(filename,'w',encoding='utf8')asf:
f.write(' '.join(lines))
f.flush()

修改需謹慎,修改前請記得備份,不明白可追問。

⑸ 如何使用Python3讀取配置文件

ini是微軟Windows操作系統中的文件擴展名(也常用在其他系統)。
INI是英文「初始化(Initial)」的縮寫。正如該術語所表示的,INI文件被用來對操作系統或特定程序初始化或進行參數設置。通過它,可以將經常需要改變的參數保存起來(而且還可讀),使程序更加的靈活。
先給出一個ini文件的示例。
1234567891011[School]ip = 10.15.40.123mask = 255.255.255.0gateway = 10.15.40.1dns = 211.82.96.1 [Match]ip = 172.17.29.120mask = 255.255.255.0gateway = 172.17.29.1dns = 0.0.0.0
這個配置文件中保存的是不同場合下的IP設置參數。
首先,Python讀取ini配置需要用到ConfigParser包,所以要先載入它。
1import configparser
之後我們需要載入配置文件。
1config=configparser.ConfigParser()
#IpConfig.ini可以是一個不存在的文件,意味著准備新建配置文件。
1config.read("IpConfig.ini")
接下來,我們可以使用configparser.add_section()向配置文件中添加一個Section。
#添加節School
1config.add_section("School")
注意:如果文件中已經存在相應的項目,則不能再增加同名的節。
然後可以使用configparser.set()在節School中增加新的參數。
#添加新的IP地址參數
1234config.set("School","IP","192.168.1.120")config.set("School","Mask","255.255.255.0")config.set("School","Gateway","192.168.1.1")config.set("School","DNS","211.82.96.1")
你可以以同樣的方式增加其它幾項。
#由於ini文件中可能有同名項,所以做了異常處理
12345678try: config.add_section("Match") config.set("Match","IP","172.17.29.120") config.set("Match","Mask","255.255.255.0") config.set("Match","Gateway","172.17.29.1") config.set("Match","DNS","0.0.0.0")except configparser.DuplicateSectionError: print("Section 'Match' already exists")
增加完所有需要的項目後,要記得使用configparser.write()進行寫入操作。
1config.write(open("IpConfig.ini", "w"))
以上就是寫入配置文件的過程。
接下來我們使用configparser.get()讀取剛才寫入配置文件中的參數。讀取之前要記得讀取ini文件。
12345ip=config.get("School","IP")mask=config.get("School","mask")gateway=config.get("School","Gateway")dns=config.get("School","DNS")print((ip,mask+"\n"+gateway,dns)
下面是一個完整的示常式序,它將生成一個IpConfig.ini的配置文件,再讀取文件中的數據,輸出到屏幕上。
1# -*- coding: utf-8 -*-import configparser#讀取配置文件config=configparser.ConfigParser()config.read("IpConfig.ini")#寫入宿舍配置文件try: config.add_section("School") config.set("School","IP","10.15.40.123") config.set("School","Mask","255.255.255.0") config.set("School","Gateway","10.15.40.1") config.set("School","DNS","211.82.96.1")except configparser.DuplicateSectionError: print("Section 'School' already exists")#寫入比賽配置文件try: config.add_section("Match") config.set("Match","IP","172.17.29.120") config.set("Match","Mask","255.255.255.0") config.set("Match","Gateway","172.17.29.1") config.set("Match","DNS","0.0.0.0")except configparser.DuplicateSectionError: print("Section 'Match' already exists")#寫入配置文件config.write(open("IpConfig.ini", "w"))ip=config.get("School","IP")mask=config.get("School","mask")gateway=config.get("School","Gateway")dns=config.get("School","DNS")print((ip,mask+"\n"+gateway,dns))

⑹ 沒有section的ini文件可以用ConfigParser解析嗎

這篇文章主要介紹了Python中使用ConfigParser解析ini配置文件實例,本文給出了創建和讀取ini文件的例子,需要的朋友可以參考下
ini文件是windows中經常使用的配置文件,主要的格式為:

復制代碼代碼如下:

[Section1]
option1 : value1
option2 : value2

python提供了一個簡單的模塊ConfigParser可以用來解析類似這種形式的文件。對於ConfigParser模塊可以解析key:value和key=value這樣的類型,對於#和;開頭的行將會自動忽視掉。相當於注釋行。常用的函數:

復制代碼代碼如下:

ConfigParser.RawConfigParser()

RawConfigParser Object的操作有:
.sections() : 返回所有可用的section
.addsection(sectionname) :添加section
.set(sectionname, optionname, optionvalue): 添加option
.hassection(sectionname) :判斷
.options(sectionname) : 返回section下可用的option
.hasoption(sectionname, optionname) : 判斷
.read(filename) : 讀取文件
.wrie(filename) : 將RawConfigParser對象寫到文件中
.get(sectionname, optionname) : 獲取值, 默認的是返回string類型
.getfloat, .getint, .getboolean : 獲取不同類型的返回值,參數和get的參數一樣
.items(sectionname) :列出section下的所有key:value
.remove(sectionname) :刪除section
.remove(sectionname, option_name) : 刪除section下的某個option

Demo -- 生成文件

復制代碼代碼如下:

$ cat ini_demo.py
# -*- coding:utf-8 -*-

import ConfigParser
def gen_ini():
ftest = open('test','w')
config_write = ConfigParser.RawConfigParser()
config_write.add_section('Section_a')
config_write.add_section('Section_b')
config_write.add_section('Section_c')
config_write.set('Section_a','option_a1','apple_a1')
config_write.set('Section_a','option_a2','banana_a2')
config_write.set('Section_b','option_b1','apple_b1')
config_write.set('Section_b','option_b2','banana_b2')
config_write.set('Section_c','option_c1','apple_c1')
config_write.set('Section_c','option_c2','banana_c2')
config_write.write(ftest)
ftest.close()
if __name__ == "__main__":
gen_ini()

最後生成的文件為:

復制代碼代碼如下:

$ cat test
[Section_a]
option_a1 = apple_a1
option_a2 = banana_a2

[Section_c]
option_c2 = banana_c2
option_c1 = apple_c1
[Section_b]
option_b1 = apple_b1
option_b2 = banana_b2
Demo -- 讀取文件
def read_ini():
config_read = ConfigParser.RawConfigParser()
config_read.read('test')
print config_read.sections()
print config_read.items('Section_a')
print config_read.get('Section_a','option_a1')

最後的結果為:

復制代碼代碼如下:

['Section_a', 'Section_c', 'Section_b']
[('option_a2', 'banana_a2'), ('option_a1', 'apple_a1')]
apple_a1

⑺ [python] ConfigParser讀取帶中文的ini文件

ini文件按utf-8格式保存試試看

⑻ python中四種配置文件

常用的配置文件後綴是.ini、.conf、.py,當然還有使用.json、.txt的,推薦使用常用的.ini、.py,配置文件的名字一般是config便於理解和使用。

ini配置文件,這類配置文件我們使用內置configparser庫來使用,它可以實現配置文件的寫入、更新、刪除、讀取等操作非常方便,建議使用這種方式。
新建一個config.ini的配置文件內容如下,編碼格式要是 utf-8 以免出錯。:

其中[]中的是section節點,該節點下的等式是option即鍵=值
然後每一行寫一個option ,每個選項就是一個option。直接寫名字,後面加 " = " 再加上它的值就行,字元串的表示不要加引號,否則引號也會被解析出來。
可以在配置文件中加入注釋 ,但是注釋必須是單獨的一行,且以 「#」 開頭。只是每次運行時不會讀入注釋,只要運行一次,寫入文件後,所有的注釋都會消失。

config.json文件

使用python內置的 json 標准庫進行解析ini文件。
load() 從json文件中讀取json格式數據
loads() 將字元串類型數據轉化為json格式數據
mp() 將json格式數據保存到文件
mps() 將json格式數據保存為字元串類型

TOML的語法廣泛地由key = "value"、[節名]、#注釋構成。
支持以下數據類型:字元串、整形、浮點型、布爾型、日期時間、數組和圖表。
config.toml文件

使用外部庫 toml 解析toml文件。

安裝:pip install toml
讀取文件

安裝:

YAML是目前最推薦的配置文件格式。優秀的配置文件標准它幾乎都有:

容易閱讀和修改,支持注釋。

支持豐富的數據類型。

不同格式的明確表達。

yaml使用時需要注意:

yaml強制縮進。雖然不規定具體縮進幾個空格,但是同一級的內容要保持相同的縮進。

冒號後面一定要加空格, 否則無法解析。

python解析 yaml 可以使用pyyaml庫,操作和標準的文件操作非常類似:

得到的data就是解析後的數據,在python當中,它是一個嵌套的字典:

想獲取某一項配置,再通過字典的操作獲取:
config.yaml文件

讀取

⑼ 如何使用python程序向ini配置文件中寫入中文

和普通的讀寫文件一樣的,首先得要有許可權,然後重要的是文件編碼格式要選對且要統一,不然就亂碼了

⑽ 如何使用python程序向ini配置文件中寫入中文

和普通的讀寫文件一樣的,首先得要有許可權,然後重要的是文件編碼格式要選對且要統一,不然就亂碼了

熱點內容
壓縮長抱枕 發布:2025-07-18 16:13:38 瀏覽:503
如何使用wifi熱點配置網路 發布:2025-07-18 16:06:25 瀏覽:968
android軟鍵盤數字 發布:2025-07-18 16:03:18 瀏覽:610
三菱plc編程軟體官網 發布:2025-07-18 15:59:59 瀏覽:436
gse源碼 發布:2025-07-18 15:58:15 瀏覽:626
編譯鏈c語言執行速度 發布:2025-07-18 15:52:51 瀏覽:554
在線編程課程 發布:2025-07-18 15:46:56 瀏覽:172
生兔子演算法循環 發布:2025-07-18 15:44:32 瀏覽:46
背包規劃演算法 發布:2025-07-18 15:44:27 瀏覽:109
微信安卓手機哪裡設置鈴聲 發布:2025-07-18 15:36:54 瀏覽:780