自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

原创 Python装饰器探究——装饰器参数

Table of Contents1. 探究装饰器参数1.1. 编写传参的装饰器1.2. 理解传参的装饰器1.3. 传参和不传参的兼容2. 参考资料探究装饰器参数编写传参的装饰器通常我们见到的简单装饰器这样的:import jsonimport functoolsdef json_output(func): @functools.wraps(decorated) def i

2016-12-18 00:37:22 472

原创 Python装饰器探究——多个装饰器执行顺序

Table of Contents1. 装饰器迷思值多个装饰器执行顺序1.1. 疑问1.2. 函数和函数调用的区别1.3. 装饰器函数在被装饰函数定义好后立即执行1.4. 疑问的解释2. 参考资料装饰器迷思值多个装饰器执行顺序装饰器是Python用于封装函数或代码的工具,网上可以搜到很多文章可以学习,我在这里要讨论的是多个装饰器执行顺序的一个迷思。疑问大部分涉及多个装饰器装饰的函数调用顺序

2016-12-17 22:52:39 1311

原创 Python CSV模块简介

Table of Contents1. CSV1.1. 简介1.2. 字典方式地读写1.3. 其它2. 参考资料CSVcsv文件格式是一种通用的电子表格和数据库导入导出格式。最近我调用RPC处理服务器数据时,经常需要将数据做个存档便使用了这一方便的格式。简介Python csv模块封装了常用的功能,使用的简单例子如下:# 读取csv文件import csvwith open('some.

2016-12-10 13:38:41 584

原创 理解线程3 c语言示例线程基本操作

Table of Contents1. 基本线程的动作1.1. 设置线程属性1.1.1. 设置脱离状态1.1.2. 设置调度属性1.2. 取消线程1.3. 主线程创建多个线程示例2. 了解更多3. 参考资料4. PS基本线程的动作继续之前C语言线程的文章:文章1 文章2 来了解基本的线程操作。设置线程属性设置脱离状态下面代码中关键的地方在于: - 通过 res = pthread

2016-12-04 22:01:44 348

原创 Python 外部函数调用库ctypes简介

Table of Contents1. 参考资料2. ctypes简介2.1. 数据类型2.2. 调用.so/.dll2.2.1. 加载动态链接库2.2.2. 调用加载的函数2.2.3. 设置个性化参数2.2.4. 指定函数需要参数类型和返回类型3. 题外话参考资料https://docs.python.org/2.7/library/ctypes.htmlhttp://www.i

2016-12-01 00:14:17 609

原创 Python logging 模块简介

Table of Contents1. Logging 模块1.1. 简介1.2. 简单输出日志1.3. 输入日志到文件1.4. 几个基本概念1.4.1. loggers1.4.2. handlers 和轮转日志1.4.3. Formatters 和 个性化输出1.5. 其它1.5.1. logger.exception1.5.2. Filter Object1.5.3. 线程安全

2016-11-27 23:56:44 584

原创 Python文章推荐1

Table of Contents1. 分享最近看到的python相关的几篇好文(我只是想偷懒)1.1. 形象解释了什么是GIL1.2. 知乎上 Pythonic 相关1.3. evil “eval”分享最近看到的python相关的几篇好文(我只是想偷懒)形象解释了什么是GILhttp://cenalulu.github.io/python/gil-in-python/知乎上 Python

2016-11-27 00:11:08 359

原创 Python os.walk() 简介

Table of Contents1. os.walk目录遍历1.1. os.walk1.2. 例子1.2.1. 测试topdown1.2.2. 运行时修改遍历目录2. 参考资料os.walk目录遍历每周都有那么几天想划水,又到划水的日子了,今天分享的是刚在处理遍历目录相关用到的相关方法。os.walkos.walk的参数如下:os.walk(top, topdown=True, onerr

2016-11-26 23:50:20 7970 5

原创 Python locale 多语言模块和我遇到的坑

Table of Contents1. locale遇到的问题1.1. locale 简介1.1.1. 什么是locale1.1.2. locale 相关命令1.2. Python locale1.3. 我踩的坑1.3.1. strptime 和 strftime1.3.2. 阿里云oss sdk 使用遇到的问题2. 参考资料locale遇到的问题今天工作上遇到一个 locale 相关的

2016-11-25 13:06:27 11860

原创 Python 探测图片文件类型

Table of Contents1. 探测图片类型1.1. python magic1.2. imghdr1.3. PIL.Image探测图片类型今天遇到一个小问题,如何探测图片的文件类型。总结如下:python magicmagic 模块的github地址在这, 可以用来方便地探测文件类型,使用示例如下,可以方便地探测一个文件或是字节流文件。>>> import magic>>> mag

2016-11-23 23:03:16 954

原创 python双向链表的疑问(Question)

Table of Contents1. 问题问题在看 collections.OrderedDict 的源码时,对于它如何构造有序的结构这一部分不是很理解,代码如下:class OrderedDict(dict): 'Dictionary that remembers insertion order' # An inherited dict maps keys to values.

2016-11-23 00:07:19 426

原创 Python 有序字典简介

Table of Contents1. 有序字典-OrderedDict简介1.1. 示例1.2. 相等性1.3. 注意2. 参考资料有序字典-OrderedDict简介示例有序字典和通常字典类似,只是它可以记录元素插入其中的顺序,而一般字典是会以任意的顺序迭代的。参见下面的例子:import collectionsprint 'Regular dictionary:'d = {}d['

2016-11-21 23:58:30 293

原创 Python linecache模块

Table of Contents1. linecache1.1. 其它2. 参考资料linecache今天分享一个python的小模块: linecache, 可以用它方便地获取某一文件某一行的内容。而且它也被 traceback 模块用来获取相关源码信息来展示。 用法很简单:>>> import linecache>>> linecache.getline('/etc/passwd',

2016-11-21 23:55:49 348

原创 信号量和互斥量C语言示例理解线程同步

Table of Contents1. 线程同步1.1. 用信号量进行同步1.2. 用互斥量进行同步2. 参考资料线程同步了解线程信号量的基础知识,对深入理解python的线程会大有帮助。当两个线程同时执行时,不可避免同时操作同一个变量或者文件等,所以需要有一组机制来确保他们能正确的运行:信号量和互斥量。信号量可以分为最简单的“二进制信号量”和更通用的“计数信号量”。信号量通常用来保护一段代码

2016-11-20 22:41:47 326

原创 Python 代码优化技巧(一)

Table of Contents1. 代码优化Part11.1. if 判断的短路特性1.2. join 合并字符串1.3. while 1 和 while True1.4. cProfile, cStringIO 和 cPickle1.5. 合理使用生成器1.5.1. 区别1.5.2. xrange1.6. import 语句的开销2. 参考资源:3. NEXT ctypes代

2016-11-20 13:51:02 374

原创 Python 性能分析工具简介

Table of Contents1. 性能分析和调优工具简介1.1. Context Manager1.2. Decorator1.3. 系统自带的time命令1.4. python timeit 模块1.5. cProfile1.5.1. profile.Profile1.6. lineprofiler1.6.1. 示例1.7. memoryprofiler1.8. TODO o

2016-11-18 00:13:31 428

原创 理解线程的小程序

Table of Contents1. 一个简单的C语言实现的线程示例一个简单的C语言实现的线程示例在看《Beginning Linux Programming》时,为了更好的理解线程的概念,书中列举了这样一个小例子:#include <stdio.h>#include <unistd.h>#include <stdlib.h>#include <string.h>#include <pt

2016-11-16 22:07:39 405

原创 Python 信号处理 signal 模块

Table of Contents1. signal模块简介1.1. signal简单示例1.2. signal说明1.2.1. 基本的信号名1.2.2. 常用信号处理函数2. signal使用示例2.1. 示例12.2. 示例23. 参考资料signal模块简介最近在看Linux signal 相关内容,signal可以被用来进程间通信和异步处理。Python标准库提供了signal包

2016-11-16 22:03:05 2768

原创 Python 频繁请求问题: [Errno 104] Connection reset by peer

Table of Contents1. 记遇到的一个问题:[Errno 104] Connection reset by peer记遇到的一个问题:[Errno 104] Connection reset by peer今天工作上有个需求,数据库有个表有将近3万条url记录,每条记录都是一个图片,我需要请求他们拿到每个图片存到本地。一开始我是这么写的(伪代码):import requestsfor

2016-11-14 21:58:30 27064 1

原创 python os模块进程函数

———-Table of Contents1. 系统进程2. 举例2.1. os.fork2.2. os.exec 和 os.system2.3. os.wait3. 总结系统进程今天在看《Beginning Linux Programming》中的进程相关部分,讲到Linux几个进程相关的系统函数: system, exec, fork, wait. Python的 os 模块实现了对应

2016-11-13 23:14:51 1103

原创 Python编码相关文章推荐

Table of Contents1. 分享分享python2里面编码对很多人来说是个很头疼的问题,今天分享一篇编码相关的文章,是前几天读到的相比于大部分解释编码问题的一知半解模糊不清,这篇写得非常不错, 参见这里。

2016-11-12 23:44:20 216

原创 Python Counter() 的实现

Table of Contents1. collections.Counter 源码实现1.1. __init__1.2. update1.3. most_common1.3.1. itemgetter1.3.2. heapquue1.4. elements1.4.1. repeat1.4.2. starmap1.4.3. chain.from_iterable1.5. substr

2016-11-11 23:42:51 3160

原创 Python Counter()计数工具

Table of Contents1. class collections.Counter([iterable-or-mapping])1.1. 例子1.2. 使用实例2. To Be Continuedclass collections.Counter([iterable-or-mapping])Counter 是实现的 dict 的一个子类,可以用来方便地计数。例子举个计数的例子,需要统计

2016-11-10 23:51:42 465

原创 浏览器自动化工具-Selenium

Table of Contents1. 什么是Selenium2. 简单的例子3. PS什么是SeleniumSelenium可以自动化操作浏览器,利用Selenium可以模拟用户操作,因此它可以被用来做自动化测试,或者模拟用户行为来自动化操作等。简单的例子可以通过pip安装seleniumfrom selenium import webdriverbrowser = webdriver.Ch

2016-11-09 23:20:03 411

原创 计算运行时间工具timeit

Table of Contents1. timeit的功能和用法2. 其它3. 参考资料timeit的功能和用法timeit 模块提供了测试一小段代码运行时间的功能。我前面有一篇文章用它来测试定义 __slots__ 对对象访问速度的提升情况,参见这里 。 官方文档 上有下面这样的使用例子:# 从命令行调用python -m timeit '"-".join([str(n) for n i

2016-11-08 23:20:18 368

原创 内存映射mmap

Table of Contents1. 什么是mmap2. 使用方法2.1. mmap构造器的格式2.2. 例子12.3. 例子2:3. 其它4. 参考资料什么是mmap通常在Unix系统里有两种操作的数据类型:内存地址和流文件(stream)。通过操作内存地址的方法涉及的操作有:pointers, malloc/free之类,而操作流文件涉及的方法有read/write/seek等系统

2016-11-07 22:49:43 1368

原创 类的__slots__属性

为什么有”slots”属性?默认情况下,python对象队象的每个实例(instance)都会有一个字典来存储该实例的属性,这样做的好处在于运行时期每个对象可以任意设置新的属性。而相对应的坏处是,当创建成百上千个这样的实例的时候回很浪费内存。所以引入__slots__,用来指定实例只拥有固定的属性,因此python会给每个实例对象分配固定的内存空间,从而减少内存消耗。而且使用__slots__可以加

2016-11-06 23:51:11 336

原创 Hello World

Hello World所有的事从hello world开始。这个博客系列叫做“Python提高班”,是为了向大学时期看的“09dota提高班”致敬,通过那一系列视频我才切切实实地学会dota这款很棒的游戏,以及顺利荒废了大学大好的时光(手动滑稽)。然而我目前水平并不足以写一系列帮助别人提高python水平的文章,所以这里其实是我每天自己学到的python相关知识的一个分享,如果读者正好觉得对自己有帮

2016-11-05 11:35:06 203

空空如也

空空如也

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

TA关注的人

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