XLRD导入之后,从列表中的端口号配对



我对此事的IP地址有帮助。我试图修改用于配对端口号码的相同脚本,但请继续遇到float属性错误。我已经尝试更改它,但是作为新手,我未能取得任何进展,请提供帮助。

这是数据['','','',','','','',''''''',''','','',','',10001.0,10001.0,''','','',','',',',',',',',',',',',',',',',',',',',','''''''','','',',',',12001.0,''','','','','','',',',',','',14001.0,'','',',',',',',',',',',',',',',',',',',',',',',',',',',',''',',',','',',22.0,'','','','','','',',',',',',22.0,',',',22.0,'''',''','','','','',',',14001.0,'','','',',',',',',',',',',''','','','接收字符串','','','','','','','','','',',',',','','',''','','']

这是我修订的脚本pool_ports = [[]

for x in PPoData[PPoData.index('Pool Member Port'):]:
    if not x:
        if Pool_Ports[-1]:
            Pool_Ports.append([])
    else:
        #Pool_Ports[-1].append(x.partition(' ')[0])

print(Pool_Ports)

错误消息attributeError:'float'对象没有属性'分区'

适用于IP地址的上一个链接对从XLRD

删除的列表中的配对IP地址

错误实际上很简单。您的输入列表的端口值(例如11001.0)存储为浮子,因此代码断开。即时修复程序将在分区之前将x施放到字符串。

Pool_Ports[-1].append(str(x).partition(' ')[0])

但是,输出最终为

[[['10001.0','10001.0'],['11001.0','11001.0'],['12001.0', '12001.0'],['14001.0','14001.0'],['14001.0','14001.0'], ['14001.0','14001.0'],['14001.0','14001.0'],['14001.0'], ['10001.0'],['11001.0'],['12001.0'],['14001.0'],['22 .0'],['22 .0'], ['22 .0'],['22 .0'],['14001.0'],['recection'],[]]

这不是您需要的,它具有['Receive'][],不是有效的池端口。

所以,受 @cᴏʟᴅsᴘᴇᴇᴅ的回答启发,我建议您使用正则

import re
PPoData = ['', '', '', '', '', '', '', 'Pool Member Port', '', 10001.0, 10001.0, '', '', '', '', '', '', '', 11001.0, 11001.0, '', '', '', '', '', '', '', 12001.0, 12001.0, '', '', '', '', '', '', '', 14001.0, 14001.0, '', '', '', '', '', '', '', 14001.0, 14001.0, '', '', '', '', '', '', '', 14001.0, 14001.0, '', '', '', '', '', '', '', 14001.0, 14001.0, '', '', '', '', '', '', '', 14001.0, '', 10001.0, '', '', '', '', '', '', '', '', 11001.0, '', '', '', '', '', '', '', '', 12001.0, '', '', '', '', '', '', '', '', 14001.0, '', '', '', '', '', '', '', '', 22.0, '', '', '', '', '', '', '', '', 22.0, '', 22.0, '', '', '', '', '', '', '', '', 14001.0, '', '', '', '', '', '', '', '', '', '', '', 'Receive string', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '']
pattern = 'd+.d+'
Pool_Ports = [[]]
for x in PPoData:
    if not x and Pool_Ports[-1]:
        Pool_Ports.append([])
    m = re.match(pattern, str(x))
    if m:
        Pool_Ports[-1].append(str(x))
if [] in Pool_Ports:
    Pool_Ports.remove([])
print(Pool_Ports)
# [['10001.0', '10001.0'], ['11001.0', '11001.0'], ['12001.0', '12001.0'], ['14001.0', '14001.0'], ['14001.0', '14001.0'], ['14001.0', '14001.0'], ['14001.0', '14001.0'], ['14001.0'], ['10001.0'], ['11001.0'], ['12001.0'], ['14001.0'], ['22.0'], ['22.0'], ['22.0'], ['14001.0']]

最新更新