今天用python读取一个有很多字段的配置文件,配置文件中的格式类似:
pidStart:2600
startFid:47
startTid:450
startFirst:1
message:''
一般会想到的是:
config = open(configPath, 'r')
for item in config:
//set value one by one
这么多的字段一个个的设置太累,很自然就想到python将字符串key直接作为变量的函数:vars()
>>>str = "abc"
>>>vars()[str] = "TEST"
>>>print(abc)
TEST
这个比较繁琐的问题解决后,剩下的就是取":"的位置,再截取字符串,这时该切片运算上场了:
idx = item.index(':')
s = item[:idx]
vars()[s] = item[(idx+1):].strip('\n')
完整的code:
try:
config = open("testConfig.ini", 'r')
for item in config:
idx = item.index(':')
fname = item[:idx]
vars()[fname] = item[(idx + 1):].strip('\n')
config.close()
except FileExistsError:
//do something
except FileNotFoundError:
//do something
except:
print('Open config file error:'+ sys.exc_info()[0])
finally:
//do something
转载于:https://blog.51cto.com/lybing/1823159