在一个函数内使用re出错:
1、re.后无法自动补全findall等。二,运行是提示出错
程序开始import re正常。函数外使用r = re.findall search 等正常。
2、运行是出错:
File "d:\test\tianwang\tianwang_run.py", line 586, in new_onu_all_sn
re_l = re.findall('[0-9]{1,2}/.*',onu_un_all_info)
UnboundLocalError: local variable 're' referenced before assignment
代码577行出错:
def new_onu_all_sn(name,ip,type,username,password,sn): # 函数输入参数。
global new_nou_all_ip_port_id_sn_str
if type == '5800G' or type == '5680G': # 如果是 华为设备,调用Huawei_g
c = Huawei_G(name,ip,type,username,password) #
# c.olt_connect # 这里 是重点,这个变量 判断olt是否故障,以后从这个接口返回信息提示olt 故障不通。非常重要。!!!!!!!!!!!!!!!!!!
onu_un_all_info = c.display_onu_un_all()
c.olt_quit()
elif type == '5680E' : # 如果是 华为设备,调用Huawei_g
c = Huawei_E(name,ip,type,username,password)
onu_un_all_info = c.display_onu_un_all()
c.olt_quit()
elif type == 'C600':
c =Zte_C600(name,ip,type,username,password) # 对应各型号olt设备,调用telnet_class
onu_un_all_info = c.show_onu_un_all()
c.olt_exit()
elif type == 'C300G':
# print('type___________成功!啦!----C300G')
c = Zte_C300(name,ip,type,username,password)
onu_un_all_info = c.show_onu_un_all()
c.olt_exit()
elif type == 'C300E':
c = Zte_C300E(name,ip,type,username,password)
onu_un_all_info = c.show_onu_un_all()
c.olt_exit()
elif type == 'C220':
c = Zte_C220(name,ip,type,username,password)
onu_un_all_info = c.show_onu_un_all()
c.olt_exit()
if onu_un_all_info == False: # 如果返回没有新光猫出现的olt,则 赋值变量为 字符串 None 避免出错。
onu_un_all_info = "None"
else:
pass
re_l = re.findall('[0-9]{1,2}\/.*',onu_un_all_info)
print('relrelrelrelrel',re_l)
for re in re_l:
re_ok = re.findall('%s'%sn,re)
if len(re_ok) == 0:
pass
else:
new_nou_all_ip_port_id_sn_str = new_nou_all_ip_port_id_sn_str + '\n' + name + ip +type + re_ok[0]
有偿帮助!