python3 默认抓取的txt文档的格式是UTF-8,前几天交换机异常抓的txt文档格式为ANSI格式
代码
import pymssql
import xlwt
import datetime
from xlwt import *
import codecs #打开ANSI格式的文档,需要codecs库
today=datetime.date.today().strftime('%Y%m%d')
txt='F51FA-HJ-S5560X-10.20.5.1.txt' #这个文档就是ANSI格式的
file = codecs.open('/root/xunjian/'+today+'/'+txt,'r',encoding='gb2312')
#codecs打开文档,encoding是gb2312,不是ANSI
listlist=file.readlines()
print('ANSI打开成功')
i=1
for line in listlist:
if '1 Normal' in line:
power11=line[8:15].rstrip()
print(power11)
if 'Uptime is' in line:
time11=line[9:].rstrip()
print(time11)
if 'hotspot' in line:
environment11=line[17:21].rstrip()
print(environment11)
if 'Fan 1:' in line:
fana11=listlist[i+1][-8:].rstrip()
print(fana11)
if 'Fan 2:' in line:
fanb11=listlist[i+1][-8:].rstrip()
print(fanb11)
if 'in last 5 minutes' in line:
cpu11=line[6:10].rstrip()
print(cpu11)
if 'Mem:' in line:
memory11=line[-7:].rstrip()
print(memory11)
if 'To_F5-Core-S12508_Ten-G1' in line:
briefa11=line[20:30].rstrip()
print(briefa11)
if 'To_F5-Core-S12508_Ten-G2' in line:
briefb11=line[20:30].rstrip()
print(briefb11)
if 'Current messages:' in line:
log11=line[-5:].rstrip()
print(log11)
if 'Routes' in line:
routingtable11=line[-5:].rstrip()
print(routingtable11)
i += 1
运行结果
注意
巡检设备如果抓取的txt文档的格式是ANSI,有可能是你设备冷重启了(跳电等,非正常重启),python3.5默认的txt文档都是UTF-8格式。windows下面的python3.6可以处理UTF-8和ANSI的txt文档,不需要单独编写代码。