我对此事的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
错误实际上很简单。您的输入列表的端口值(例如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']]