python文件处理系列(一):配置文件处理
最近在搞一個(gè)需求質(zhì)量評估工具,原來的工作量只是負(fù)責(zé)需求評估模型部分的代碼編碼,其他的數(shù)據(jù)采集和數(shù)據(jù)輸入處理交由其他團(tuán)隊(duì)負(fù)責(zé),后來emmmmmm,你們懂得,就是老板爸爸不斷增加新需求,比如數(shù)據(jù)采集要自己寫啦、變量通過配置文件進(jìn)行配置啦
今天就記錄一下使用python的配置文件讀取模塊configparser踩的坑。。。。
一、配置文件的文件屬性及格式
配置文件分為section和option兩個(gè)部分,section就是用[]定義的一大段,option就是section中的每個(gè)變量
# 定義config分組 [SysConfig] platformName=Android appPackage=com.romwe appActivity=com.romwe.SplashActivity# 定義log分組 [Log] log_error=true下面是配置文件編寫過程遇到的坑
| 坑1 | configparser.NoSectionError: No section: | 一般來說配置文件的文件屬性都是ini,但使用configparser的話,文件類型最好是txt,不然會出現(xiàn)意想不到的錯(cuò)誤 |
| 坑2 | configparser.NoSectionError: No section: | 分組的組名是區(qū)分大小寫的,全部小寫會報(bào)錯(cuò),認(rèn)為不存在 |
| 坑3 | option = ”com.romwe“ 讀到的option的值會包含左右引號“、” | configparser模塊讀取option時(shí)會把option的值作為string類型讀過來,所以在配置文件中不需要自己用“”對變量類型標(biāo)記為string類型 |
| 坑4 | 如果想給option賦值list怎么辦?例如:option = ["1","2","3"] | 1、配置文件中所有option的值都是string類型,沒有其他類型,如果option的值需要使用list類型的話,可以先把option的值讀出來,然后使用string.split(",")進(jìn)行分割 2、分割后的list中的元素的類型還是string類型的,此時(shí)可以使用list(map(int, list))對list中所有元素進(jìn)行類型轉(zhuǎn)換 |
二、configparser基本使用
| configparser.ConfigParser() | 實(shí)例化一個(gè)ConfigParser類 |
| read(filename,encoding) | 直接讀取ini文件內(nèi)容 |
| sections() | 得到所有的section名,并以列表的形式返回 |
| options(section) | 得到該section的所有option |
| items(section) | 得到該section的所有鍵值對 |
| get(section,option) | 得到section中option的值,返回為string類型 |
| getint(section,option) | 得到section中option的值,返回為int類型,還有相應(yīng)的getboolean()和getfloat() 函數(shù) |
坑1:使用configparser.read(filename,encoding)讀取配置文件時(shí)的編碼問題,encoding無法識別”GBK“和”utf-8“。納尼。。。。這兩種都是最基本的編碼格式卻識別不了,后來找到了報(bào)錯(cuò)原因,encoding = GB18030這樣寫就可以了
?
總結(jié)
以上是生活随笔為你收集整理的python文件处理系列(一):配置文件处理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 性能测试工具系列(一):性能测试工具对比
- 下一篇: Python os.path模块的使用