自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Fabio的博客

学习的一些记录,方便自己后期查索

  • 博客(146)
  • 收藏
  • 关注

原创 python上下文管理之基于生成器的实现

我们还可以用装饰器(decorators)和生成器(generators)来实现上下文管理器。Python有个contextlib模块专门用于这个目的。我们可以使用一个生成器函数来实现一个上下文管理器,而不是使用一个类。让我们看看一个基本的,没用的例子:from contextlib import contextmanager@contextmanagerdef open_file...

2018-07-31 09:54:18 296

原创 python上下文管理器之处理异常

处理异常我们还没有谈到__exit__方法的这三个参数:type, value和traceback。在第4步和第6步之间,如果发生异常,Python会将异常的type,value和traceback传递给__exit__方法。它让__exit__方法来决定如何关闭文件以及是否需要其他步骤。在我们的案例中,我们并没有注意它们。那如果我们的文件对象抛出一个异常呢?万一我们尝试访问文件对象的...

2018-07-31 09:52:31 785

原创 python的上下文管理器

上下文管理器允许你在有需要的时候,精确地分配和释放资源。使用上下文管理器最广泛的案例就是with语句了。想象下你有两个需要结对执行的相关操作,然后还要在它们中间放置一段代码。上下文管理器就是专门让你做这种事情的。举个例子:with open('some_file', 'w') as opened_file: opened_file.write('Hola!')上面这段代...

2018-07-31 09:50:27 201

原创 python里面的*args 和 **kwargs

我观察到,大部分新的Python程序员都需要花上大量时间理解清楚 *args 和**kwargs这两个魔法变量。那么它们到底是什么?首先让我告诉你, 其实并不是必须写成*args 和**kwargs。 只有变量前面的 *(星号)才是必须的. 你也可以写成*var 和**vars. 而写成*args 和**kwargs只是一个通俗的命名约定。 那就让我们先看一下*args吧。*args 的用...

2018-07-31 09:41:49 286 1

转载 Python 生成器以及应用

一、定义可以理解为一种数据类型,这种数据类型自动实现了迭代器协议(其他的数据类型需要调用自己内置的__iter__方法),所以生成器就是可迭代对象二、生成器的两种形式(Python有两种不同的方式提供生成器)1.生成器函数:常规函数定义,但是,使用yield语句而不是return语句返回结果。yield语句一次返回一个结果,在每个结果中间,挂起函数的状态,以便下次重它离开的地方继续执行...

2018-07-30 15:54:48 942

转载 彻底理解Python中的yield

阅读别人的python源码时碰到了这个yield这个关键字,各种搜索终于搞懂了,在此做一下总结:通常的for...in...循环中,in后面是一个数组,这个数组就是一个可迭代对象,类似的还有链表,字符串,文件。它可以是mylist = [1, 2, 3],也可以是mylist = [x*x for x in range(3)]。 它的缺陷是所有数据都在内存中,如果有海量数据的话将会非常耗内存...

2018-07-30 15:40:34 203

转载 Python yield 使用浅析

您可能听说过,带有 yield 的函数在 Python 中被称之为 generator(生成器),何谓 generator ?我们先抛开 generator,以一个常见的编程题目来展示 yield 的概念。如何生成斐波那契數列斐波那契(Fibonacci)數列是一个非常简单的递归数列,除第一个和第二个数外,任意一个数都可由前两个数相加得到。用计算机程序输出斐波那契數列的前 N 个数是一...

2018-07-30 15:26:28 83

原创 深入理解yield

yield的英文单词意思是生产,刚接触Python的时候感到非常困惑,一直没弄明白yield的用法。只是粗略的知道yield可以用来为一个函数返回值塞数据,比如下面的例子: 1 2 3 def addlist(alist):     for i in alist:         yield i + 1 取出alist...

2018-07-30 15:09:59 274

转载 python ctypes 探究 ---- python 与 c 的交互

近几天使用 python 与 c/c++ 程序交互,网上有推荐swig但效果都不理想,所以琢磨琢磨了 python 的 ctypes 模块。同时,虽然网上有这方面的内容,但是感觉还是没说清楚。这里记录下来做备用,同时也给广大 python with c/c++ 派留给方便。如果你觉得我写的不好,可以参考官方文档里对 ctypes 的介绍,那里说不一定有你想要的。如有错误,请指正:)。测试环...

2018-07-30 14:10:22 157

原创 Python调用C语言

Python中的ctypes模块可能是Python调用C方法中最简单的一种。ctypes模块提供了和C语言兼容的数据类型和函数来加载dll文件,因此在调用时不需对源文件做任何的修改。也正是如此奠定了这种方法的简单性。示例如下实现两数求和的C代码,保存为add.c //sample C file to add 2 numbers - int and floats#include...

2018-07-30 13:54:22 374

原创 三、Item

Items爬取的主要目标就是从非结构性的数据源提取结构性数据,例如网页。 Scrapy提供 Item 类来满足这样的需求。Item 对象是种简单的容器,保存了爬取到得数据。 其提供了 类似于词典(dictionary-like) 的API以及用于声明可用字段的简单语法。声明ItemItem使用简单的class定义语法以及 Field 对象来声明。例如:import scrap...

2018-07-30 11:47:33 349

原创 二、scrapy例子

https://github.com/scrapy/dirbot

2018-07-30 11:28:22 387

原创 Scrapy入门教程

在本篇教程中,我们假定您已经安装好Scrapy。 如若不然,请参考 安装指南 接下来以 Open Directory Project(dmoz) (dmoz) 为例来讲述爬取。本篇教程中将带您完成下列任务:创建一个Scrapy项目 定义提取的Item 编写爬取网站的 spider 并提取 Item 编写 Item Pipeline 来存储提取到的Item(即数据)Scrapy由...

2018-07-30 11:12:55 175

原创 一、安装Scrapy

下列的安装步骤假定您已经安装好下列程序:Python 2.7 Python Package: pip and setuptools. 现在 pip 依赖 setuptools ,如果未安装,则会自动安装 setuptools 。 lxml. 大多数Linux发行版自带了lxml。如果缺失,请查看http://lxml.de/installation.html OpenSSL. 除了Win...

2018-07-30 10:45:33 196

转载 NLP大神推荐的机器学习入门书单(附大量百度网盘电子书)

继NLP之后,我又开了ML这个大坑。这是因为NLP涉及到太多的ML模型,仅仅拿过来用的话,我实现的HanLP已经快到个人极限了。而模型背后的原理、如何优化、如何并行化等问题,都需要寻根求源才能解决。所以我找了个书单自学,电子书为主,顺便分享出来。  ML书单 │  李航.统计学习方法.pdf │  机器学习及其应用.pdf │  All of Statistics - A Conc...

2018-07-27 15:52:24 2474 1

原创 快速排序

#include<stdio.h>void QuickSort(int a[],int left,int right){ int i = left; int j = right; int temp = a[left]; if (left>=right) return; while(i!=j) { while(i<j&&a[j]&gt...

2018-07-27 14:45:46 149

原创 十、Go 语言变量作用域

作用域为已声明标识符所表示的常量、类型、变量、函数或包在源代码中的作用范围。Go 语言中变量可以在三个地方声明:函数内定义的变量称为局部变量 函数外定义的变量称为全局变量 函数定义中的变量称为形式参数接下来让我们具体了解局部变量、全局变量和形式参数。局部变量在函数体内声明的变量称之为局部变量,它们的作用域只在函数体内,参数和返回值变量也是局部变量。以下实例中 main()...

2018-07-27 12:15:44 268

原创 九、Go 语言函数

函数是基本的代码块,用于执行一个任务。Go 语言最少有个 main() 函数。你可以通过函数来划分不同功能,逻辑上每个函数执行的是指定的任务。函数声明告诉了编译器函数的名称,返回类型,和参数。Go 语言标准库提供了多种可动用的内置的函数。例如,len() 函数可以接受不同类型参数并返回该类型的长度。如果我们传入的是字符串则返回字符串的长度,如果传入的是数组,则返回数组中包含的元素个...

2018-07-27 11:59:21 163

原创 八、Go 语言循环语句 实例

输出 1-100 素数:package mainimport "fmt"func main() { var C, c int//声明变量 C=1 /*这里不写入FOR循环是因为For语句执行之初会将C的值变为1,当我们goto A时for语句会重新执行(不是重新一轮循环)*/ A: for C < 100 { C++ //C=1不能写入...

2018-07-27 11:52:07 204

原创 七、Go 语言循环语句

在不少实际问题中有许多具有规律性的重复操作,因此在程序中就需要重复执行某些语句。以下为大多编程语言循环程序的流程图: Go 语言提供了以下几种类型循环处理语句:循环类型 描述 for 循环 重复执行语句块 循环嵌套 在 for 循环中嵌套一个或多个 for 循环 循环控制语句循环控制语句可以控制循环体内语句的执行过程。GO 语言支持以下几种循环控制...

2018-07-27 10:36:54 157

原创 Go 语言条件语句

条件语句需要开发者通过指定一个或多个条件,并通过测试条件是否为 true 来决定是否执行指定语句,并在条件为 false 的情况在执行另外的语句。下图展示了程序语言中条件语句的结构:Go 语言提供了以下几种条件判断语句:语句 描述 if 语句 if 语句 由一个布尔表达式后紧跟一个或多个语句组成。 if...else 语句 if 语句 后可以使用可选的 e...

2018-07-27 10:35:26 164

原创 六、Go 语言运算符

运算符用于在程序运行时执行数学或逻辑运算。Go 语言内置的运算符有:算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 其他运算符接下来让我们来详细看看各个运算符的介绍。算术运算符下表列出了所有Go语言的算术运算符。假定 A 值为 10,B 值为 20。运算符 描述 实例 + 相加 A + B 输出结果 30 - 相减 ...

2018-07-27 10:32:26 150

原创 C语言中处理字符串的函数

在C语言中有许多字符串处理函数,在写程序的时候常常想不起来或则不了解区别,今天就花点时间将这些函数做个总结,以便以后查找使用。一、输入函数scanf 与 scanf_s 函数char buf[10] = { 0 };scanf("%s", buf);//输入:tttt3printf("buf = %s\n", buf);//结果:buf = tttt3char buf1[10] ...

2018-07-26 17:30:04 507

原创 五、Go 语言变量

变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念。变量可以通过变量名访问。Go 语言变量名由字母、数字、下划线组成,其中首个字母不能为数字。声明变量的一般形式是使用 var 关键字:var identifier type变量声明第一种,指定变量类型,声明后若不赋值,使用默认值。var v_name v_typev_name = value第二种,根据...

2018-07-26 11:39:23 122

原创 四、Go 语言数据类型

在 Go 编程语言中,数据类型用于声明函数和变量。数据类型的出现是为了把数据分成所需内存大小不同的数据,编程的时候需要用大数据的时候才需要申请大内存,就可以充分利用内存。Go 语言按类别有以下几种数据类型:序号 类型和描述 1 布尔型 布尔型的值只可以是常量 true 或者 false。一个简单的例子:var b bool = true。 2 数字类型...

2018-07-26 11:18:10 123

原创 Python 输出百分比的两种方式

Python 输出百分比的两种方式注: 在python3环境下测试。方式1:直接使用参数格式化:{:.2%}{:.2%}: 显示小数点后2位显示小数点后2位:>>> print('percent: {:.2%}'.format(42/50))percent: 84.00%不显示小数位:{:.0%},即,将2改为0:>>> print...

2018-07-26 09:38:16 2954

原创 三、Go 语言基础语法

Go 标记Go 程序可以由多个标记组成,可以是关键字,标识符,常量,字符串,符号。如以下 GO 语句由 6 个标记组成:fmt.Println("Hello, World!")6 个标记是(每行一个):1. fmt2. .3. Println4. (5. "Hello, World!"6. )行分隔符在 Go 程序中,一行代表一个语句结束。每个语句不需要像 C...

2018-07-26 09:26:07 1526

原创 二、Go 语言结构

在我们开始学习 Go 编程语言的基础构建模块前,让我们先来了解 Go 语言最简单程序的结构。Go Hello World 实例Go 语言的基础组成有以下几个部分:包声明 引入包 函数 变量 语句 & 表达式 注释接下来让我们来看下简单的代码,该代码输出了"Hello World!":package mainimport "fmt"func main()...

2018-07-26 09:11:28 172

原创 一、Go 语言环境安装

Go 语言支持以下系统:Linux FreeBSD Mac OS X(也称为 Darwin) Window安装包下载地址为:https://golang.org/dl/。如果打不开可以使用这个地址:https://golang.google.cn/dl/。各个系统对应的包名:操作系统 包名 Windows go1.4.windows-amd64.msi ...

2018-07-25 17:30:56 391

原创 Python的多线程编程

提到多线程,很多人就会望而却步,本文将由浅入深地带你攻克python多线程编程,并防止你跳入深坑,首先看一段简单的代码: 1 from time import ctime,sleep 2 def play_video(video): 3 for i in range(2): 4 print "i am playing video: %s at %s"%(...

2018-07-25 09:05:09 182

原创 二十二、HBase安全

我们可以授予和撤销HBase用户的权限。也有出于安全目的,三个命令:grant, revoke 和 user_permission.。grantgrant命令授予特定的权限,如读,写,执行和管理表给定一个特定的用户。 grant命令的语法如下:hbase> grant <user> <permissions> [<table> [<co...

2018-07-25 09:04:50 430

原创 二十一、HBase计数和截断

count可以使用count命令计算表的行数量。它的语法如下:count ‘<table name>’ 删除第一行后,表emp就只有两行。验证它,如下图所示。hbase(main):023:0> count 'emp'2 row(s) in 0.090 seconds=> 2 truncate此命令将禁止删除并重新创建一个表。truncate...

2018-07-25 09:04:35 239

原创 二十、HBase扫描

scan 命令用于查看HTable数据。使用 scan 命令可以得到表中的数据。它的语法如下:scan ‘<table name>’ 下面的示例演示了如何使用scan命令从表中读取数据。在这里读取的是emp表。hbase(main):010:0> scan 'emp'ROW COLUMN+CELL1 co...

2018-07-25 09:04:22 310

原创 十九、HBase删除数据

从表删除特定单元格使用 delete 命令,可以在一个表中删除特定单元格。 delete 命令的语法如下:delete ‘<table name>’, ‘<row>’, ‘<column name >’, ‘<time stamp>’下面是一个删除特定单元格和例子。在这里,我们删除salaryhbase(main):006:0&g...

2018-07-25 09:04:04 1712

原创 十八、HBase读取数据

get命令和HTable类的get()方法用于从HBase表中读取数据。使用 get 命令,可以同时获取一行数据。它的语法如下:get ’<table name>’,’row1’下面的例子说明如何使用get命令。扫描emp表的第一行。hbase(main):012:0> get 'emp', '1' COLUMN C...

2018-07-24 09:58:01 492

原创 十七、HBase更新数据

可以使用put命令更新现有的单元格值。按照下面的语法,并注明新值,如下图所示。put ‘table name’,’row ’,'Column family:column name',’new value’新给定值替换现有的值,并更新该行。示例假设HBase中有一个表emp拥有下列数据hbase(main):003:0> scan 'emp' ROW ...

2018-07-24 09:55:52 6581

原创 十六、HBase创建数据

本章将介绍如何在HBase表中创建的数据。要在HBase表中创建的数据,可以下面的命令和方法:put 命令, add() - Put类的方法 put() - HTable 类的方法.作为一个例子,我们将在HBase中创建下表。使用put命令,可以插入行到一个表。它的语法如下:put ’<table name>’,’row1’,’<colfamily:col...

2018-07-24 09:51:09 560

原创 十五、HBase客户端API

本章介绍用于对HBase表上执行CRUD操作的HBase Java客户端API。 HBase是用Java编写的,并具有Java原生API。因此,它提供了编程访问数据操纵语言(DML)。HBaseConfiguration类添加 HBase 的配置到配置文件。这个类属于org.apache.hadoop.hbase包。方法及说明   S.No. 方法及说明 1...

2018-07-24 09:46:19 286

原创 十四、HBase关闭

exit可以通过键入exit命令退出shell。hbase(main):021:0> exit停止HBase要停止HBase,浏览进入到HBase主文件夹,然后键入以下命令。./bin/stop-hbase.sh使用Java API停止HBase可以使用HBaseAdmin类的shutdown()方法关闭HBase。按照下面给出关闭HBase的步骤:第1步...

2018-07-24 09:44:20 1937 1

原创 十三、HBase删除表

用drop命令可以删除表。在删除一个表之前必须先将其禁用。hbase(main):018:0> disable 'emp'0 row(s) in 1.4580 secondshbase(main):019:0> drop 'emp'0 row(s) in 0.3060 seconds使用exists 命令验证表是否被删除。hbase(main):020:0&g...

2018-07-24 09:42:58 6528

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除