最近在搞乙個需求質量評估工具,原來的工作量只是負責需求評估模型部分的**編碼,其他的資料採集和資料輸入處理交由其他團隊負責,後來emmmmmm,你們懂得,就是老闆爸爸不斷增加新需求,比如資料採集要自己寫啦、變數通過配置檔案進行配置啦
今天就記錄一下使用python的配置檔案讀取模組configparser踩的坑。。。。
配置檔案分為section和option兩個部分,section就是用定義的一大段,option就是section中的每個變數
# 定義config分組
[sysconfig]
platformname=android
# 定義log分組
[log]
log_error=true
下面是配置檔案編寫過程遇到的坑
坑編號坑說明
出坑方法
坑1configparser.nosectionerror: no section:
一般來說配置檔案的檔案屬性都是ini,但使用configparser的話,檔案型別最好是txt,不然會出現意想不到的錯誤
坑2configparser.nosectionerror: no section:
分組的組名是區分大小寫的,全部小寫會報錯,認為不存在
坑3option = 」com.romwe「
讀到的option的值會包含左右引號「、」
configparser模組讀取option時會把option的值作為string型別讀過來,所以在配置檔案中不需要自己用「」對變數型別標記為string型別
坑4如果想給option賦值list怎麼辦?例如:option = ["1","2","3"]
1、配置檔案中所有option的值都是string型別,沒有其他型別,如果option的值需要使用list型別的話,可以先把option的值讀出來,然後使用string.split(",")進行分割
2、分割後的list中的元素的型別還是string型別的,此時可以使用list(map(int, list))對list中所有元素進行型別轉換
函式名方法說明
configparser.configparser()
例項化乙個configparser類
read(filename,encoding)
直接讀取ini檔案內容
sections()
得到所有的section名,並以列表的形式返回
options(section)
得到該section的所有option
items(section)
得到該section的所有鍵值對
get(section,option)
得到section中option的值,返回為string型別
getint(section,option)
得到section中option的值,返回為int型別,還有相應的getboolean()和getfloat() 函式
坑1:使用configparser.read(filename,encoding)讀取配置檔案時的編碼問題,encoding無法識別」gbk「和」utf-8「。納尼。。。。這兩種都是最基本的編碼格式卻識別不了,後來找到了報錯原因,encoding = gb18030這樣寫就可以了
GO系列 ini檔案處理
gopkg.in ini.v1 建立乙個空的配置 cfg ini.empty 直接載入存在的配置檔案,如果檔案不存在就會報錯 可以同時載入多個配置檔案,後面的配置檔案鍵值會覆蓋前面乙個 不能夠確定其中哪些檔案是不存在的,可以通過呼叫函式 looseload 來忽略它們。跳過無法識別的資料行 cfg,...
python檔案處理
def cal input input.txt output output.txt cal方法為主程式,推薦這樣做而不是python.exe xx.py 預設引數為python目錄的兩個txt,如為其他檔案自己指定。infile file input,r 開啟源資料檔案 outfile file o...
python 檔案處理
1.開啟檔案 open a.txt 當前目錄下的a.txt open root a.txt 開啟某個目錄下的檔案 2.按行顯示檔案 a open a.txt a.readline ni hao n a.readline wo xianzai hen xiang ni n a.readline ni ...