用 jupyter notebook 打开 oui.txt 文件出现的问题及解决方案
问题背景:下载了2018 IEEE 最新的 oui.txt 文件。里面包含了 设备 MAC 地址的前六位对应的厂商。要做的工作是,将海量设备的 MAC 地址与 oui.txt 文件的信息比对,统计出 苹果,华为,小米,OPPO,VIVO 这5家厂商的占比情况。oui.txt 文档里面的内容如下图所示。
oui.txt 文件中有很多冗余信息。现在只关心前 6 位 mac 地址和五个厂商的对应关系。所以,对 oui.txt 里的数据清洗一下。
处理 oui.txt 出现的问题:
1.按照下面的写法,会报错
 with open('data/oui.txt') as f:
     for line in f.readlines():
         if('Apple' in line and '-' not in line):
             print(line)

看来是编码问题,搜索了别人相关问题的回答,然后尝试方法2:
 with open('data/oui.txt', encoding='gb18030') as f:
     for line in f.readlines():
         if('Apple,' in line and '-' not in line):
             print(line)
结果依旧出错。
再次尝试下面的的代码:
 with open('data/oui.txt', encoding='gb18030', errors='ignore') as f:
     for line in f.readlines():
         if('Apple,' in line and '-' not in line):
             print(line)
就成功了。但是不太理解这个 error=‘ignore’ 会不会让我需要的信息漏读。
聪明的大虎给我提供了一个思路:可以用 utf-8
所以改成下面的样子:
 with open('data/oui.txt', encoding='utf-8') as f:
     for line in f.readlines():
         if('Apple,' in line and '-' not in line):
             print(line)
这次成功,完全读取出来了,整理出的格式如下:IEEE分配给苹果的前六位mac地址太多,这里只展示一部分。

果然,看书敲代码学习是一回事,自己做东西出来是另外一回事
用 jupyter notebook 打开 oui.txt 文件出现的问题及解决方案的更多相关文章
- 在右键菜单中添加用Jupyter Notebook打开
		在右键菜单中添加用Jupyter Notebook打开 为了把 Jupyter 的工作目录指定到某一个文件夹下,每次都要启动 CMD 终端, 然后激活 Anaconda 环境,再启动 Jupyter ... 
- 解析oui.txt文件,通过MAC前缀获取Organization
		1.前言 OUI是指Organizationally unique identifier (组织唯一标识符),签发给各类组织的唯一标识符.MAC地址共有6个字节48位组成,前3个字节体现了OUI,其 ... 
- Jupyter Notebook 打开方法
		直接在文件资源管理器的地址栏中输入Jupyter notebook ,即可打开当前目录下的Jupyter.比之前右键打开power shell更方便 
- 如何用Jupyter Notebook打开Spark
		电脑已经装了anaconda python,然后下载了spark2.1.0.因为版本太新,所以网上和书上的一些内容已经不再适用.比如关于如何使用IPython和Jupyter,教程给出的方法是用如下语 ... 
- [转载] linux下打开windows txt文件中文乱码问题
		原文链接 在linux操作系统下,我们有时打开在windows下的txt文件,发现在windows下能正常显示的txt文件出现了中文乱码. 出现这种情况的原因为两种操作系统的中文压缩方式不同,在win ... 
- 如何用Jupyter notebook打开本地数据集
		首先打开本地Jupyter notebook,出现类似页面并进入网页端Home. 网页端界面类似如下: 需要注意的是,Jupyter notebook只能打开当前目录下的数据集,如csv,所以需要使用 ... 
- linux下打开windows txt文件中文乱码问题 (转载)
		转自:http://blog.csdn.net/imyang2007/article/details/7448177 在linux操作系统下,我们有时打开在windows下的txt文件,发现在wind ... 
- Jupyter notebook中的.ipynb文件转换成python的.py文件
		转自:https://blog.csdn.net/wyr_rise/article/details/82656555 Jupyter notebook中.py与.ipynb文件的import问题 ... 
- R语言:读入txt文件中文文本出现乱码解决方案
		下载安装 readr 因为使用内置函数 read.table() 读入应该是格式不符合要求会报错 library(readr) help(package="readr") 可以使用 ... 
随机推荐
- pwn学习日记Day3 基础知识积累
			知识杂项 msfVENOM:Msfvenom是msf框架配套的攻击载荷生成器. payload:有效载荷. payload:目标系统上渗透成功后执行的代码. Metasploit:一款开源的安全漏洞检 ... 
- element-ui+vue-treeselect校验
			element-ui+vue-treeselect下拉框的校验 问题陈述: 在element-ui中有自带的表单验证,但是使用的vue-treeselect无法验证 vue-treeselect DE ... 
- 接口自动化框架(java)--4.接口Token传递
			这套框架的报告是自己封装的 一般token会在登录接口返回结果中呈现,从代码层面获取token的方式有很多种,我是使用jsonpath这个json路径语言去匹配token所在路径的key值 packa ... 
- 远程Gitlab新建的分支在IDEA里不显示
			cmd命令打开dos命令窗口,进入项目文件所在目录 (**TIPS:在资源管理器的地址栏里直接输入cmd,就会打开命令窗口,并且此时命令窗口显示的路径就是当前路径)git branch -a:可以查看 ... 
- day21 python之模块和包
			一 模块 1 什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1 使用python编 ... 
- day17 python递归案例(二分查找,三级菜单)
			递归函数与三级菜单 menu = { '北京': { '海淀': { '五道口': { 'soho': {}, '网易': {}, 'google': {} }, '中关村': { '爱奇艺': {} ... 
- dom反转
			<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ... 
- 《ASP.NET Core In Action》读书笔记系列四 创建ASP.NET Core 应用步骤及相应CLI命令
			一般情况下,我们都是从一个模板(template)开始创建应用的(模板:提供构建应用程序所需的基本代码).本节使用 Visual Studio 2017 .ASP.NET Core2.0和 Visua ... 
- IAR Embedded Workbench for ARM 8.22.1 基础使用教程
			面向尚未熟悉且初次使用该软件的新手(比如我...) 1.建立新工作区 File-->>New Workspace 2.建立新项目 1) Project-->>Create Ne ... 
- Angular4 管道
