博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用 jupyter notebook 打开 oui.txt 文件出现的问题及解决方案
阅读量:6842 次
发布时间:2019-06-26

本文共 1157 字,大约阅读时间需要 3 分钟。

问题背景:下载了2018 IEEE 最新的 oui.txt 文件。里面包含了 设备 MAC 地址的前六位对应的厂商。要做的工作是,将海量设备的 MAC 地址与 oui.txt 文件的信息比对,统计出 苹果,华为,小米,OPPO,VIVO 这5家厂商的占比情况。oui.txt 文档里面的内容如下图所示。

oui.txt 文件中有很多冗余信息。现在只关心前 6 位 mac 地址和五个厂商的对应关系。所以,对 oui.txt 里的数据清洗一下。

处理 oui.txt 出现的问题:

1.按照下面的写法,会报错

1 with open('data/oui.txt') as f:2     for line in f.readlines():3         if('Apple' in line and '-' not in line):4             print(line)

看来是编码问题,搜索了别人相关问题的回答,然后尝试方法2:

1 with open('data/oui.txt', encoding='gb18030') as f:2     for line in f.readlines():3         if('Apple,' in line and '-' not in line):4             print(line)

结果依旧出错。

再次尝试下面的的代码:

1 with open('data/oui.txt', encoding='gb18030', errors='ignore') as f:2     for line in f.readlines():3         if('Apple,' in line and '-' not in line):4             print(line)

就成功了。但是不太理解这个 error=‘ignore’ 会不会让我需要的信息漏读。

 

聪明的大虎给我提供了一个思路:可以用 utf-8

所以改成下面的样子:

1 with open('data/oui.txt', encoding='utf-8') as f:2     for line in f.readlines():3         if('Apple,' in line and '-' not in line):4             print(line)

这次成功,完全读取出来了,整理出的格式如下:IEEE分配给苹果的前六位mac地址太多,这里只展示一部分。

 

果然,看书敲代码学习是一回事,自己做东西出来是另外一回事

转载于:https://www.cnblogs.com/rougan/p/10172015.html

你可能感兴趣的文章
如何防止博客园文章被窃取
查看>>
悟透JavaScript(二)
查看>>
<rhel6+pptpd+freeradius+mysql>
查看>>
8-31号19题作业
查看>>
09 路由重分发和路由策略
查看>>
mysql的root密码忘记解决办法
查看>>
C# String.Format方法
查看>>
javascript面向对象编程笔记
查看>>
vim的用法
查看>>
【转】poj 1823 :Hotel (线段树)
查看>>
os.walk
查看>>
Windows Server 2016之部署Nano Server
查看>>
我的友情链接
查看>>
IDEA快捷键
查看>>
gradle任务
查看>>
Server 2016 域控密码重置
查看>>
apache安装,镇博
查看>>
bridged,host-only,nat
查看>>
IF增强的用法
查看>>
备份mysql数据库提示marked as crashed and should be repaired when doing LOCK TABLES
查看>>