⑴ 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 讀寫文件
有些數據是臨時的,它們在應用程序運行時存儲在內存中,然後丟棄。但是有些數據是持久的。它們存儲在硬碟驅動器上供以後使用,而且它們通常是用戶最關心的東西。對於程序員來說,編寫代碼讀寫文件是很常見的,但每種語言處理該任務的方式都不同。本文演示了如何使用 Python 處理文件數據。
在 Linux 上,你可能已經安裝了 Python。如果沒有,你可以通過發行版軟體倉庫安裝它。例如,在 CentOS 或 RHEL 上:
在 macOS 上,你可以使用 MacPorts或Homebrew安裝。在 Windows 上,你可以使用Chocolatey安裝。
一旦安裝了 Python,打開你最喜歡的文本編輯器,准備好寫代碼吧。
如果你需要向一個文件中寫入數據,記住有三個步驟:
這與你在計算機上編碼、編輯照片或執行其他操作時使用的步驟完全相同。首先,打開要編輯的文檔,然後進行編輯,最後關閉文檔。
在 Python 中,過程是這樣的:
這個例子中,第一行以 寫 模式打開了一個文件,然後用變數 f 表示,我使用了 f 是因為它在 Python 代碼中很常見,使用其他任意有效變數名也能正常工作。
在打開文件時,有不同的模式:
第二行表示向文件中寫入數據,本例寫入的是純文本,但你可以寫入任意類型的數據。
最後一行關閉了文件。
對於快速的文件交互,常用有一種簡短的方法可以寫入數據。它不會使文件保持打開狀態,所以你不必記得調用 close 函數。相反,它使用 with 語法:
如果你或你的用戶需要通過應用程序需要向文件中寫入一些數據,然後你需要使用它們,那麼你就需要讀取文件了。與寫入類似,邏輯一樣:
同樣的,這個邏輯反映了你一開始使用計算機就已知的內容。閱讀文檔,你可以打開、閱讀,然後關閉。在計算機術語中,「打開」文件意味著將其載入到內存中。
實際上,一個文本文件內容肯定不止一行。例如,你需要讀取一個配置文件、 游戲 存檔或樂隊下一首歌曲的歌詞,正如你打開一本實體書時,你不可能立刻讀完整本書,代碼也只能解析已經載入到內存中的文件。因此,你可能需要遍歷文件的內容。
示例的第一行指明使用 讀 模式打開一個文件,然後文件交由變數 f 表示,但就像你寫數據一樣,變數名是任意的。 f 並沒有什麼特殊的,它只是單詞 「file」 的最簡表示,所以 Python 程序員會經常使用它。
在第二行,我們使用了 line ,另一個任意變數名,用來表示 f 的每一行。這告訴 Python 逐行迭代文件的內容,並將每一行的內容列印到輸出中(在本例中為終端或IDLE)。
就像寫入一樣,使用 with 語法是一種更簡短的方法讀取數據。即不需要調用 close 方法,方便地快速交互。
使用 Python 有很多方法向文件寫入數據,包括用 JSON、YAML、TOML等不同的格式寫入。還有一個非常好的內置方法用於創建和維護SQLite資料庫,以及許多庫來處理不同的文件格式,包括圖像、音頻和視頻等。
via: https://opensource.com/article/21/7/read-write-files-python
作者:Seth Kenlon選題:lujun9972譯者:MjSeven校對:turbokernel
⑶ python 怎麼讀取配置文件
python 讀取配置文件方法
#coding=utf8
import ConfigParser
config = ConfigParser.ConfigParser()
config.readfp(open(raw_input("input file name:"), "rb"))
print config.get("global", "ip")
config.ini
[global]
ip = 192.168.1.100 ;ip地址
port = 3306
⑷ 如何使用Python3讀寫INI配置文件
import configparser
# 生成config對象
conf =configparser.ConfigParser()
# 用config對象讀取配置文件
conf.read("xxx.ini")
#從ini配置文件中獲取信息
a=conf.get("xx","yy")
print(a) 結果為: zz
xxx.ini
[xx]
yy=zz
⑸ python 如何讀取復雜文件 比如我有個配置文件, 格式為 「#文本內容 配置參數「 這樣的格式 該怎麼讀取
我覺得寫成json格式比較好
比如
文件名file.json
格式如下
[
[name1,param1],
[name2,param2]
]
然後用python的
data = json.load(open('file.json','r'))
這樣就可以通過 data[0][0] data[0][1]這樣去調用配置了
⑹ python3 怎麼讀取mysql配置文件
記錄一個讀取my.cnf配置的腳本,可以基於該函數做一些mysql 後端運維工作。各位可以基於自己的需求進行修改。
腳本名稱getcnf.py
importsys
importos
defread_cnf(cnf_path):
assertcnf_pathisnotNoneandos.path.exists(cnf_path)
cnf_dict={}
cur_section=None
with open(cnf_path)as cnf_reader:
forlineincnf_reader.readlines():
line=''.join(line.split())
iflen(line)<=0or'#'==早扒襪line[0]:
continue
if'['==line[0]and']'==line[-1]:
cur_section=line[len('['):len(line)-1]
ifcur_sectionnotincnf_dict:
cnf_dict[cur_section]={}
elif'='inlineandline.count('=')==1:
ifcur_sectionisNone:
LOGGER.warning('cur_section is None')
continue
tokens=line.split('=')
key=tokens[0].replace('"','').replace("'",'')
value=tokens[1].replace('"','').replace("'此消","")
cnf_dict[cur_section][key]=value
returncnf_dict
defmain():
cnf_path="/u01/my3353/my.cnf"
mycnf=read_cnf(cnf_path)
printmycnf['mysqld']['tmpdir']
if__name__=='__main__':
main()