解決ConfigParser配置option的大小寫問題


通常情況下,我們會這樣解析配置文件:

confiig = ConfigParser.ConfigParser()

config.read('xxx.ini') #這個read表示對某個文件用讀打開,

把文件內容讀進結構
config.set(section, option, value) #修改

config.write(open('xxx.ini', 'w') #寫

可以看到,這個read和write沒有任何聯系

我在使用ConfigParser過程,發現他對option的大小寫不敏感,全部變成小寫,

這樣如果你在修改之后,重寫,會發現本來是大寫的option變成小寫了。

問題出在

def optionxform(self, optionstr):
return optionstr.lower()

可以自己寫一個NewConfigParser,繼承ConfigParser,重載函數 optionxform  

import configparser
class NewConfigParser(configparser.ConfigParser):
def optionxform(self, optionstr):
return optionstr
def read_config_again():
rootdir = r"./config/xxx.ini"
config=NewConfigParser()
try:
config.read(rootdir, encoding='utf-8')
secs = config.sections()
print("{}".format(secs))
opts = config.options("API")#[1:]
print("{}".format(opts))
kvs = config.items("API")#[1:]
print("{}".format(kvs))
except configparser.DuplicateOptionError as doe:
print("{} 有問題,需要查看 {}".format(doe, rootdir))
pass
if __name__ == '__main__':
read_config_again()




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM