Python3如何打开ANSI⽂档
python3 默认抓取的txt⽂档的格式是UTF-8,前⼏天交换机异常抓的txt⽂档格式为ANSI格式代码
import pymssql
import xlwt
import datetime
from xlwt import *
import codecs #打开ANSI格式的⽂档,需要codecs库
today=day().strftime('%Y%m%d')
txt='F51FA-HJ-S5560X-10.20.'#这个⽂档就是ANSI格式的
file = codecs.open('/root/xunjian/'+today+'/'+txt,'r',encoding='gb2312')
#codecs打开⽂档,encoding是gb2312,不是ANSI
adlines()
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()
python中文文档print(routingtable11)
i += 1
运⾏结果
注意
巡检设备如果抓取的txt⽂档的格式是ANSI,有可能是你设备冷重启了(跳电等,⾮正常重启),python3.5默认的txt⽂档都是UTF-8格式。windows下⾯的python3.6可以处理UTF-8和ANSI的txt⽂档,不需要单独编写代码。