Python配置解析器数组根据文件内容序列排序
我正在从python读取一个配置文件 要读取的文件内容:Python配置解析器数组根据文件内容序列排序,python,arrays,readfile,Python,Arrays,Readfile,我正在从python读取一个配置文件 要读取的文件内容: [environment] env = openstack [nodes] appserver-mgr2 appserver-wkr2 我正在阅读下面的节点部分 def load_server_config(): config = ConfigParser.RawConfigParser(allow_no_value=True) serverList = [] config.read('
[environment]
env = openstack
[nodes]
appserver-mgr2
appserver-wkr2
我正在阅读下面的节点部分
def load_server_config():
config = ConfigParser.RawConfigParser(allow_no_value=True)
serverList = []
config.read('deployment.cfg')
dic = dict(config.items('nodes'))
for node, ip in dic.iteritems():
serverList.append(node)
print serverList
return serverList
['appserver-wkr2', 'appserver-mgr2']
[nodes]
appserver-p
appserver-q
appserver-a
appserver-b
['appserver-p', 'appserver-q', 'appserver-a', 'appserver-b']
import collections
def load_server_config():
serverList = []
config.read('deployment.cfg')
orderedDic = collections.OrderedDict(config.items('nodes'))
for node, ip in orderedDic.iteritems():
serverList.append(node)
print serverList
return serverList
当我打印serverList数组时,它与我在文件中的顺序不符。
它打印如下
def load_server_config():
config = ConfigParser.RawConfigParser(allow_no_value=True)
serverList = []
config.read('deployment.cfg')
dic = dict(config.items('nodes'))
for node, ip in dic.iteritems():
serverList.append(node)
print serverList
return serverList
['appserver-wkr2', 'appserver-mgr2']
[nodes]
appserver-p
appserver-q
appserver-a
appserver-b
['appserver-p', 'appserver-q', 'appserver-a', 'appserver-b']
import collections
def load_server_config():
serverList = []
config.read('deployment.cfg')
orderedDic = collections.OrderedDict(config.items('nodes'))
for node, ip in orderedDic.iteritems():
serverList.append(node)
print serverList
return serverList
我必须手动按升序对数组排序
serverList.sort()
print serverList
然后输出变为
['appserver-mgr2', 'appserver-wkr2']
但我想将节中的节点提取到一个数组中,其顺序与我放入要读取的文件中的顺序相同
例如,我的文件内容如下
def load_server_config():
config = ConfigParser.RawConfigParser(allow_no_value=True)
serverList = []
config.read('deployment.cfg')
dic = dict(config.items('nodes'))
for node, ip in dic.iteritems():
serverList.append(node)
print serverList
return serverList
['appserver-wkr2', 'appserver-mgr2']
[nodes]
appserver-p
appserver-q
appserver-a
appserver-b
['appserver-p', 'appserver-q', 'appserver-a', 'appserver-b']
import collections
def load_server_config():
serverList = []
config.read('deployment.cfg')
orderedDic = collections.OrderedDict(config.items('nodes'))
for node, ip in orderedDic.iteritems():
serverList.append(node)
print serverList
return serverList
我想如下构造数组内容
def load_server_config():
config = ConfigParser.RawConfigParser(allow_no_value=True)
serverList = []
config.read('deployment.cfg')
dic = dict(config.items('nodes'))
for node, ip in dic.iteritems():
serverList.append(node)
print serverList
return serverList
['appserver-wkr2', 'appserver-mgr2']
[nodes]
appserver-p
appserver-q
appserver-a
appserver-b
['appserver-p', 'appserver-q', 'appserver-a', 'appserver-b']
import collections
def load_server_config():
serverList = []
config.read('deployment.cfg')
orderedDic = collections.OrderedDict(config.items('nodes'))
for node, ip in orderedDic.iteritems():
serverList.append(node)
print serverList
return serverList
我该怎么做呢?根据@fredtantini,我使用了如下订购信息
def load_server_config():
config = ConfigParser.RawConfigParser(allow_no_value=True)
serverList = []
config.read('deployment.cfg')
dic = dict(config.items('nodes'))
for node, ip in dic.iteritems():
serverList.append(node)
print serverList
return serverList
['appserver-wkr2', 'appserver-mgr2']
[nodes]
appserver-p
appserver-q
appserver-a
appserver-b
['appserver-p', 'appserver-q', 'appserver-a', 'appserver-b']
import collections
def load_server_config():
serverList = []
config.read('deployment.cfg')
orderedDic = collections.OrderedDict(config.items('nodes'))
for node, ip in orderedDic.iteritems():
serverList.append(node)
print serverList
return serverList
文件内容
[nodes]
appserver-mgr2
appserver-wkr2
appserver-wkr3
appserver-wkr4
我得到了我需要的结果
['appserver-mgr2', 'appserver-wkr2', 'appserver-wkr3', 'appserver-wkr4']
dict没有定购。检查订单信息