暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Python与Excel的碰撞

我不说你不造 2018-10-19
480

       昨天会上被上头知道我会Python,晚上就发了封邮件让我写脚本。过程处理其实也是非常简洁明了的,从文本文件中抽取所需要的数据,并存放结果到Excel中,原始数据就像做Hadoop练习时的气象站数据,开头有个说明,中间是数据,最后有个结尾,开头和结尾是不需要的,只取中间的数据,并且还要过滤中间的非数据项,比如说,报错信息。 
       由于原始文件里面有隐私数据,而且也在保密协议之内,我就意思下,自己写个范例吧:

  1. <WUXI-IMS-666-XX>display sbc reginfo

  2. Master spu user register infomation:

  3. Codes: ST(Status), MUCT (MG's user count),

  4.       6(registering), 6(registered), 6(offline),

  5.       6(unknown)

  6. ------------------------------------------------------------------------------

  7. UserName           Type   Device               ServerIP           ST MUCT TIME

  8. ------------------------------------------------------------------------------

  9. Spu-Group: 4 Spu-Instance: 2 SC: 1

  10. +1234567891234     SIP   66.66.66.66:6666   66.969.99.99:9696  0     - 2018/08/15  16:43:18

  11. +2345678912345     SIP   66.99.99.99:6666    99.66.99.99:9696  1     - 2018/08/15  16:42:52

  12. +3456789123456     SIP   66.69.69.69:6669    96.96.96.96:9696  1     - 2018/08/15  16:42:47

  13. ...

  14. <GOOD-BYE>

       其中,有效数据是:+1234567891234、66.66.66.66:6666和66.969.99.99:9696这样的一行,并且,这三个字段,不会在缺少其中一个或两个的时候单独出现,这就很好办了,直接切分出来就行了,字段的长度和格式都固定了。

  1. import re

  2. alist=re.findall('(\+86510\d{8})',astr)

  3. ip=re.findall(r'(?<![\.\d])(?:\d{1,3}\.){3}\d{1,3}(?![\.\d]):\d{1,5}',astr,re.S)

       这里加载了正则表达式的包,直接将ID和IP分别取了出来

  1. import xlwt

  2. while i<=len(alist)-1:

  3.    sbc_sheet.write(i,0,alist[i])

  4.    sbc_sheet.write(i,1,ip[2*i])

  5.    sbc_sheet.write(i,2,ip[2*i+1])

  6.    i=i+1

       IP是成对存在的,所以奇偶数就可以区分,不用单独和ID进行绑定,或者定义二维数组。 
       今天还是第一次用Python往Excel里传送数据,之前为了做巡检报告,是用Python抽取Excel里的数据,往Word里面插入,不过由于Word插入内容过于单薄,没有什么格式,所以当时就放弃了。


文章转载自我不说你不造,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论