我有一个sysadmin类型的CLI应用程序,它从配置文件中读取信息。我无法在下面更改配置文件的格式。
TYPE_A = "value1,value2,value2"
TYPE_A = "value3,value4,value5"
TYPE_B = "valuex,valuey,valuez"
根据TYPE
,我需要对每个进行初步处理。完成所有步骤之后,我需要做一些额外的处理,并根据所选择的选项打印状态和预期的操作或执行这些操作。
我想将配置初始解析为dicts列表的dict,并更新所有相关的TYPE_A
,TYPE_B
,TYPE_C
等的每个实例。关于它的信息。然后打印完整状态或执行操作(如果某些事情的状态不正确,则失败)
我的想法看起来像是:
dict
TYPE_A_list
dict_A[0] key:value,key:value,key:value
dict_A[1] key:value,key:value,key:value
TYPE_B_list
dict_A[0] key:value,key:value,key:value
dict_A[1] key:value,key:value,key:value
我想我想要将配置读入其中,然后在应用程序进展时添加键和值或更新值,并重新处理每个TYPE。
最后我的问题。
我对Python很新,所以我愿意接受任何建议。 FWIW,这将是python 2.6。
对配置文件行稍作澄清
CAR_TYPE = "Ford,Mustang,Blue,2005" CAR_TYPE = "Honda,Accord,Green,2009" BIKE_TYPE = "Honda,VTX,Black,2006" BIKE_TYPE = "Harley,Sportster,Red,2010" TIRE_TYPE = "170R15,whitewall"每种类型都具有相同的顺序和数量的值。
答案 0 :(得分:0)
无需“记住”有两种不同的TYPE_A
作业 - 您可以将它们合并。
TYPE_A = "value1,value2,value2"
TYPE_A = "value3,value4,value5"
将被解析为只有其中一个或两者都取决于您的sysadmin CLI应用程序的实现。
然后数据模型应为:
dict
TYPE_A: list(value1, value2, value3)
TYPE_B: list(valuex, valuey, valuez)
这样,您可以非常轻松地遍历dict.items()
:
for _type, values in dict.items():
for value in values:
print "%s: %s" % (_type, value)
# or whatever you wish to do