python
Léon's Blog
一只野生程序猿
展开
-
[django]安装配置grappelli
1、下载源码 https://github.com/sehmaschine/django-grappelli2、解包安装 python setup.py install3、配置settings.py INSTALLED_APPS = ( 'grappelli', 'django.contrib.admin',)STATICFILES_FINDERS = ( 'django原创 2016-04-23 18:06:46 · 1345 阅读 · 0 评论 -
[python]机器学习路线图
为了理解和应用机器学习技术,你需要学习 Python 或者 R。这两者都是与 C、Java、PHP 相类似的编程语言。但是,因为 Python 与 R 都比较年轻,而且更加“远离”CPU,所以它们显得简单一些。相对于R 只用于处理数据,使用例如机器学习、统计算法和漂亮的绘图分析数据, Pthon 的优势在于它适用于许多其他的问题。因为 Python 拥有更广阔的分布(使用 Jango 托管网站,自转载 2016-08-24 22:31:24 · 6693 阅读 · 1 评论 -
[python]运算符 >> << 右移 左移
都是移位操作,三个符号和两个符号的区别是:“>> 右移,高位补符号位” 这里右移一位表示除2“>>> 无符号右移,高位补0”; 与>>类似“转载 2016-10-13 10:27:16 · 23145 阅读 · 0 评论 -
[python]global与nonlocal关键字
在Python中,当引用一个变量的时候,对这个变量的搜索是按找本地作用域(Local)、嵌套作用域(Enclosing function locals)、全局作用域(Global)、内置作用域(builtins模块)的顺序来进行的,即所谓的LEGB规则。 然而当在一个函数内部为一个变量赋值时,并不是按照上面所说LEGB规则来首先找到变量,之后为该变量赋值。在Python中,在函数中为一个变量赋转载 2016-10-02 11:35:36 · 11712 阅读 · 0 评论 -
[Python]pyc pyo文件
pyc和pyo是什么1.pyc是Python保存字节码,若源码无修改,下次直接加载pyc,跳过把py『编译』成字节码pyc这个步骤,以优化启动速度;2.pyo也是字节码,比pyc更小。什么时候会生成pyc、pyo文件?import包的时候。 比如当import一个包比如datetime时,就会产生datetime.pyc文件,当下次导入datetime包的时候,Python会对比字节码和源码修改原创 2017-03-14 11:23:47 · 1104 阅读 · 0 评论 -
[Python]深拷贝效率
需求:你想复制一个对象.因为在Python中,无论你把对象做为参数传递,做为函数返回值,都是引用传递的.讨论:标准库中的copy模块提供了两个方法来实现拷贝.一个方法是copy,它返回和参数包含内容一样的对象.import copynew_list = copy.copy(existing_list)有些时候,你希望对象中的属性也被复制,可以使用deep转载 2017-08-08 19:17:53 · 338 阅读 · 0 评论 -
[Python]在python中获取函数的参数名和参数名的默认值
deff(a=1, b=2, c=3):print(locals())#在函数内获取#使用inspect模块,简单方便import inspectinspect.getargspec(f)#使用f的内置方法#获取默认值,如果参数名没有默认值则不在其中:print(f.__defaults__)#使用__code__#总参数个数print(f.__code__转载 2017-08-08 19:44:07 · 24127 阅读 · 1 评论 -
[Python]python反射
首先通过一个例子来看一下本文中可能用到的对象和相关概念。123456789101112131415#coding: UTF-8import sys# 模块,sys指向这个模块对象import inspect转载 2017-08-08 19:46:24 · 381 阅读 · 0 评论 -
[Python]打印实参名
import inspect, redef varname(p): funcname= 'varname' for line in inspect.getframeinfo(inspect.currentframe().f_back)[3]: m = re.search(r'\b%s\s*\(\s*([A-Za-z_][A-Za-z0-9_]*)\s*\)' %fu转载 2017-08-08 20:08:12 · 736 阅读 · 0 评论 -
[python]判断列表为空
>>> [] is not NoneTrue>>> [1] is not NoneTrue>>> [] == NoneFalse>>> [1] == NoneFalse>>> [] == FalseFalse>>> [] is NoneFalse>>> [] == NoneFalse>>> not []True>>> not [1]False原创 2016-09-03 21:32:53 · 7852 阅读 · 0 评论 -
[python]编码处理小结
PYTHON-进阶-编码处理小结Python-进阶-编码处理小结开始首先str 和 unicode文件处理,IDE和控制台建议相关模块及一些方法整理下python编码相关的内容注意: 以下讨论为Python2.x版本, Py3k的待尝试开始用python处理中文时,读取文件或消息,http参数等等一运行,发现乱码(字符串处转载 2016-06-02 07:22:56 · 153 阅读 · 0 评论 -
[python]源码:对象
PYTHON 源码阅读 - 对象Python 源码阅读 - 对象PyObject_HEADPyObjectPyVarObject代码关系几个方法其他结束休息期, 开始准备面试事宜了, 发现要准备的东西好多(╯‵□′)╯︵┻━┻, 顺手整理下Python源码阅读笔记(力争在写完前找到工作)参考内容: Python源码 + >用源代码+说明+图解转载 2016-06-02 07:50:12 · 98 阅读 · 0 评论 -
[python]时间操作
我们先导入必须用到的一个module>>> import time设置一个时间的格式,下面会用到>>>ISOTIMEFORMAT=’%Y-%m-%d %X’看一下当前的时间,和其他很多语言相似这是从epoch(1970 年 1 月 1 日 00:00:00)开始到当前的秒数。>>> time.time()1180759620.859上面的看不懂,换个格式来看看>>>转载 2016-05-20 10:35:37 · 333 阅读 · 0 评论 -
[python]修改SQL返回值数据结构
MySQLdb默认查询结果都是返回tuple,输出时候不是很方便,必须按照0,1这样读取,无意中在网上找到简单的修改方法,就是传递一个cursors.DictCursor就行。默认程序:import MySQLdbdb = MySQLdb.connect(host = 'localhost', user = 'root', passwd = '123456', db = 'test转载 2016-06-11 20:11:01 · 1746 阅读 · 0 评论 -
[python]关于list的append的讨论
1.内建字典d1 = {}# 方法1try: d1['k'].append('v1')except: d1['k'].append('v2')# 方法2d2 = {}if not d2['k']: d2['k'] = []d2['k'].append('v')2.使用defaultdictfrom collections import defaultdictd3原创 2016-06-11 22:43:56 · 413 阅读 · 0 评论 -
[python]内建数据结构归纳
.原创 2016-05-04 02:01:13 · 790 阅读 · 0 评论 -
[scrapy]如何让你的scrapy爬虫不再被ban
前面用scrapy编写爬虫抓取了自己博客的内容并保存成json格式的数据(scrapy爬虫成长日记之创建工程-抽取数据-保存为json格式的数据)和写入数据库(scrapy爬虫成长日记之将抓取内容写入mysql数据库)。然而,这个爬虫的功能还是过于弱小,一旦目标网站设置了爬虫的限制,我们的爬虫也就失效了。因此这里重点讲述一下如何避免scrapy爬虫被ban。本门的所有内容都是基于前面两篇文章的基础转载 2016-07-07 21:44:49 · 2470 阅读 · 0 评论 -
[python]批量重命名
任务很简单,某个目录下面有几千个文件,某些文件没有后缀名,现在的任务就是将所有的没有后缀名的文件加上后缀名,python有现成的函数可以实现,但是在实现过程中遇到几个问题,分享一下解决方法下面是最终代码 (windows下实现的)# -*- coding: cp936 -*-import ospath = 'D:\\图片\\'for file in os.listd转载 2016-08-22 21:20:07 · 462 阅读 · 0 评论 -
[python]Tesseract OCR训练
因为工作中需要自动的识别验证码,起初,我们采用市面上的打码服务,可是随着量越来越大,打码服务给我们带来了很大的成本。经过观察,有很大一部分的验证码还是比较简单的,因此我们准备自己研发一个验证码识别服务,用来识别简单的验证码。经过本人调研(其实就是google一顿乱搜^_^),发现了Tesseract-OCR,简单的介绍下它吧:Tesseract是一个开源的OCR(Optical Chara转载 2016-08-22 21:25:12 · 10898 阅读 · 0 评论 -
[nginx]搭建
nginx系列1——nginx安装字数226 阅读197 评论0 喜欢4nginx安装准备编译环境依赖yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel下载nginx-1.10.0.tar.gz解压nginx-1.10.0.tar.gztar -转载 2016-08-23 10:53:01 · 296 阅读 · 0 评论 -
[Python]深拷贝效率
最近使用 Python 一个项目,发现 Python 的深拷贝 copy.deepcopy 实在是太慢了。相关背景 在 Python 中, 我们有两种拷贝对象的方式:浅拷贝和深拷贝。浅拷贝和深拷贝都可以在 copy 模块中找到, 其中 copy.copy() 进行浅拷贝操作, copy.deepcopy() 进行深拷贝操作。浅拷贝是在另一块地址中创建一个新的对象,转载 2017-08-08 20:23:18 · 1631 阅读 · 0 评论 -
[Python]重载运算符
Python运算符重载MethodOverloadsCall for__init__构造函数X=Class()__del__析构函数对象销毁__repr__打印转换print X,repr(X)__str__打印转换print X,str(X)__call__调用函数X()转载 2017-08-08 20:24:36 · 5216 阅读 · 0 评论 -
[Python]ImportError: This platform lacks a functioning sem_open implementation, therefore, the requi
具体错误描述:ImportError: This platform lacks a functioning sem_open implementation, therefore, the required synchronization primitives needed will not function, see issue 3770.此类错误的原因:1、在安装python时没有挂转载 2018-04-30 18:37:57 · 3521 阅读 · 0 评论 -
[python] super()只不过是用来避免硬编码的
收藏(0)当在子类需要调用父类的方法时,在python2.2之前,直接用类名调用类的方法,即非绑定的类方法,并把自身对象self作参数传进去。源码打印?class A(object): def say(self): print 'I am A' class B(A): def say(self)转载 2018-05-01 21:17:30 · 261 阅读 · 0 评论 -
[Python]static、class、abstract方法
方法在Python中是如何工作的方法就是一个函数,它作为一个类属性而存在,你可以用如下方式来声明、访问一个函数:Python12345678>>> class Pizza(object):... def __init__(self, size):... s转载 2018-05-01 21:29:36 · 2028 阅读 · 0 评论 -
[Python]类属性
class Test(object): clsAttr = 'as' @classmethod def clsMethod(cls, attr): cls.clsAttr = attr @staticmethod def getClsAttr(): Test.clsAttr = 'im-as' return Test.clsA...原创 2018-05-18 00:27:06 · 492 阅读 · 0 评论 -
[Python]IO密集型任务 VS 计算密集型任务
IO密集型任务 VS 计算密集型任务所谓IO密集型任务,是指磁盘IO、网络IO占主要的任务,计算量很小。比如请求网页、读写文件等。当然我们在Python中可以利用sleep达到IO密集型任务的目的。所谓计算密集型任务,是指CPU计算占主要的任务,CPU一直处于满负荷状态。比如在一个很大的列表中查找元素(当然这不合理),复杂的加减乘除等。多线程 VS 多进程Pytho转载 2018-05-06 17:24:23 · 3285 阅读 · 1 评论 -
[Python]tornado 模板
tornado本身非常灵活,支持几乎所有python支持的模板语言。除此之外,它本身也提供了一个轻量级的模板,放在tornado.template中。测试用例代码清单1:tornado_template.pyimport tornado.httpserverimport tornado.ioloopimport tornado.web# define one "add"转载 2018-05-06 19:58:39 · 1064 阅读 · 0 评论 -
[Python]Tornado异步原理详析
Tornado是什么?Tornado是一个用Python编写的异步HTTP服务器,同时也是一个web开发框架。Tornado 优秀的大并发处理能力得益于它的 web server 从底层开始就自己实现了一整套基于 epoll 的单线程异步架构。同步、异步编程差异对于同步阻塞型Web服务器,我们来打个比方,将它比作一间饭馆,而Web请求就是来这家饭馆里吃饭的客人。假设饭馆店里转载 2018-05-06 23:07:28 · 1849 阅读 · 0 评论 -
[Python]How to create abstract properties in python abstract classes
How to create abstract properties in python abstract classesIn the following code, I create a base abstract class Base. I want all the classes that inherit from Base to provide the name property, so I...转载 2018-05-07 19:47:34 · 686 阅读 · 0 评论 -
[python多线程编程] 使用互斥锁同步线程
#!/usr/bin/env python# -*- coding: utf-8 -*-import time, threading# 假定这是你的银行存款:balance = 0muxlock = threading.Lock()def change_it(n): # 先存后取,结果应该为0: global balance balance = balanc...转载 2018-07-05 00:48:25 · 836 阅读 · 0 评论 -
[Python]矩阵乘法
1. 同线性代数中矩阵乘法的定义: np.dot()np.dot(A, B):对于二维矩阵,计算真正意义上的矩阵乘积,同线性代数中矩阵乘法的定义。对于一维矩阵,计算两者的内积。见如下Python代码:import numpy as np# 2-D array: 2 x 3two_dim_matrix_one = np.array([[1, 2, 3], [4, 5, 6]])#转载 2018-02-02 13:38:42 · 1469 阅读 · 0 评论 -
[Python]控制终端输出文字
class bcolors: HEADER = '\033[95m' OKBLUE = '\033[94m' OKGREEN = '\033[92m' WARNING = '\033[93m' FAIL = '\033[91m' ENDC = '\033[0m' def disable转载 2017-10-25 19:49:18 · 3329 阅读 · 0 评论 -
[encode]vim中文乱码
转载自http://blog.csdn.net/misakaqunianxiatian/article/details/52263564情况1:在centOS或debian等Unix系统上,使用vim编辑文件时,输入中文时,中文乱码:#vim /root/.vimrc输入如下配置:[plain] view plain copy转载 2017-10-18 13:37:01 · 730 阅读 · 0 评论 -
[Design Pattern]Python设计模式——状体模式
需求,根据当前的时间,返回工作状态#encoding=utf-8__author__ = 'kevinlu1010@qq.com'def get_state(hour): if hour>=8 and hour: return '上午工作,精神百倍' elif hour>12 and hour: return '中午工作,困,想午休转载 2017-08-11 06:00:59 · 280 阅读 · 0 评论 -
[Python]与shell交互
#在Python中调用外部命令原问题地址:http://stackoverflow.com/questions/89228/calling-an-external-command-in-python##问题:我如何在Python脚本内部调用外部命令(就好像我在Unix shell命令行或者在Windows命令提示符中键入外部命令那样)?##答案 1:参看标准转载 2017-08-10 18:59:16 · 1064 阅读 · 0 评论 -
[Python]深入理解 Python 异步编程(上)
原文出处: 阿驹 前言很多朋友对异步编程都处于“听说很强大”的认知状态。鲜有在生产项目中使用它。而使用它的同学,则大多数都停留在知道如何使用 Tornado、Twisted、Gevent 这类异步框架上,出现各种古怪的问题难以解决。而且使用了异步框架的部分同学,由于用法不对,感觉它并没牛逼到哪里去,所以很多同学做 Web 后端服务时还是采用 Flask、Django等传统的非异转载 2017-08-18 04:48:09 · 3317 阅读 · 1 评论 -
[Python] 新式类中 __new__的理解
class Myclass(object): def __init__(self, x): self.x = xself= Myclass.__new__(Myclass)Myclass.__init__(self, 10)print self.x原创 2017-08-10 23:19:14 · 330 阅读 · 0 评论 -
[Design Pattern]Python设计模式——工厂方法
需求:有一个学雷锋活动,有买米和扫地两个内容,参与的人有大学生和社区志愿者,他们各自的方法不一样。如果用简单工厂模式实现:#encoding=utf-8__author__ = 'kevinlu1010@qq.com'class LeiFeng(): def buy_rice(self): pass def sweep(self):原创 2017-08-11 04:47:35 · 530 阅读 · 0 评论 -
[Design Pattern]Python设计模式——模板模式
1.模版方法模式做题的列子:需求:有两个学生,要回答问题,写出自己的答案#encoding=utf-8class StudentA(): def answer1(self): print '题目一:XXXXXX' print '我的答案是:B' def answer2(self): print '题目一:XXX转载 2017-08-11 05:55:29 · 111 阅读 · 0 评论