自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

魔法学徒de专栏

慢慢积累...

  • 博客(46)
  • 资源 (4)
  • 收藏
  • 关注

原创 内联,外联,全联结,交叉联结

内联:(只显示两边同时符合子句条件的条目)select id,user_name.name,user_info.age,user_info.sex from user_name inner join user_info on user_name.name = user_info.name;相当于:select id,user_name.name,user_info.age,us

2015-12-01 11:51:15 731

原创 Python HTML编码解码

>>> import HTMLParser>>> h = HTMLParser.HTMLParser()>>> h.unescape("姓名:")u'\u59d3\u540d\uff1a'>>> s = h.unescape("姓名:")>>> print s姓名:>>>

2015-11-24 16:52:27 5771

原创 pymongo异常-OperationFailure: command SON(...)

File "C:\Python27\lib\site-packages\pymongo\mongo_client.py", line 397, in _cache_credentials sock_info.authenticate(credentials)    File "C:\Python27\lib\site-packages\pymongo\pool.py", line 287,

2015-11-23 17:13:20 5459

原创 pymongo update更新多条记录

在pymongo2.x中没有update_one(),update_many()等方法。而update()默认只更新一条记录。在更新多条数据时,可以将参数:multi=Truecollection.update({'id':{'$gt':0}},{'$set':{'num':0}},multi=True)在3.x中可以使用:collection.update_many({'id':

2015-11-12 15:02:20 22438 1

原创 DocumentTooLarge: BSON document too large:

找段错误的BUG的时候发现迭代mongo cursor的时候产生了这个异常:DocumentTooLarge: BSON document too large (108549088 bytes) - the connected serversupports BSON document sizes up to 16777216 bytes.Mongodb的单个文档的BSON size不能

2015-11-12 14:40:54 4295 1

原创 Python lambda 匿名函数 (二十二)

lambda是一个表达式,会创建并返回一个函数对象;def是一个语句lambda表达式中不能包含命令、语句(if,for,print等),函数体只能为表达式,可以理解成lambda表达式的内容只能为函数中return能返回的内容。a = lambda x: x+1a(5)输出:6":"左边是参数,右边是返回的表达式g = lambda x,y,z:x+y+za = g(1,

2015-10-23 19:17:17 584

原创 Sphinx 三种常见数据源配置

MySQL 数据源:/usr/local/etc/sphinx.conf#配置sourcesource blog{type = mysqlsql_host = localhostsql_user = rootsql_pass = xxxxsql_db = testsql_port = 3306sql_query = \SELECT ID, post_author, UN

2015-10-19 18:55:37 3395

原创 Python BaseHTTPServer 模块解析

例子:#coding=utf-8'''Created on 2015-7-20@author: xhw@explain: 实现GET方法和POST方法请求'''from BaseHTTPServer import HTTPServer,BaseHTTPRequestHandlerimport urllibclass ServerHTTP(BaseHTTPRequestHan

2015-10-16 16:05:58 23153 1

原创 一、Sphinx安装测试

Ubuntu:sudo apt-get install sphinxsearch #即可直接安装并自动将Sphinx命令添加到环境变量通用方法:* [root@localhost ~]# yum install -y mysql mysql-devel* [root@localhost ~]# yum install -y aut

2015-10-15 18:30:18 546

转载 easy_install,pip使用

easy_install 跟 pip 都是 Python 的套件管理程序,有了它们,在使用 Python 开发程序的时候会带來不少方便。easy_install 和 pip 有什么不一样?据 pip 官网的说法,pip 改善了不少 easy_install 的缺点,如此说來 pip 应该是略胜一筹,不过它还不能够完全取代对方,因为目前有很多套件还是得用 easy_install 安裝。

2015-10-10 15:29:07 563

原创 Python Signal 信号 (二十一)

常用信号类型SIGINT 终止进程 中断进程,不可通过signal.signal()捕捉(相当于Ctrl+C)SIGTERM 终止进程 软件终止信号,可通过signal.signal()捕捉(默认信号,当os.kill()没有指明信号类型时,默认的是该信号)SIGKILL 终止进程 杀死进程,不可捕捉(相当于linux下的kill命令,windows

2015-10-08 18:45:06 6406

原创 Python 实例方法、静态方法、类方法 (二十)

实例方法参数带self的方法,实例化对象可使用class Test(object): def __init__(self): self.a = "Hello world!" def test(self): print self.a#实例方法必须在类实例化后使用A = Test()A.test() 静态方法静态方

2015-10-08 18:39:49 674

原创 Python 实例变量、类变量、静态变量 (十九)

实例变量实例变量则是以为self.开头,必须在实例化该类后使用class Test(object): def __init__(self): self.a = "Hello world!" def test(self): #在内部Test.a是不能访问类变量的 print self.aA = Test()A

2015-10-08 18:32:52 8619 1

原创 Python 装饰器 (十八)

装饰器是一个函数,用来包装别的函数的函数,并返回一个修改之后的函数对象,将其重新赋值原来的标识符,原始函数对象是无法访问的。当执行该方法时:先执行装饰器内部的代码然后执行返回的对象。装饰器原理def decorate(func): print "start called func()!" func() def func_1(): print "This i

2015-10-08 18:20:41 617

原创 Python DeprecationWarning 类型错误

升级pymongo模块到3.x的时候,产生了下面警告:DeprecationWarning: update is deprecated. Use replace_one, update_one or update_many instead.然后看了pymongo.collection.Collection.update方法def update(self, spec, document, ups

2015-09-29 18:17:21 34108

原创 Python import机制 (十七)

1.importPython 中所有加载到内存的模块都放在 sys.modules 。当 import 一个模块时首先会在这个字典中查找是否已经加载了此模块,如果加载了则只是将模块的名字加入到正在调用 import 的模块的 Local 名字空间中。如果没有加载则从 sys.path 目录中按照模块名称查找模块文件,模块可以是py、pyc、pyd,找到后将模块载入内存,并加到 sys.modu

2015-09-25 18:38:03 2121

原创 Python 垃圾回收 (十六)

引用计数1.当一个对象的引用被创建或者复制时,对象的引用计数加12.当一个对象的引用被销毁时,对象的引用计数减13.当对象的引用计数减少为0时,该对象没有被任何人所引用,因此这时候可以释放该对象所占的内存资源这种机制有一个很大的特点:虽然可以实时的回收内存,但是实时的内存回收会消耗额外的资源,进而影响程序的执行效率,还有一个缺点就是当某些对象引用未释放时,该资源是无法被回收的a =

2015-09-24 23:28:11 2019 1

原创 Python with解析 __enter__()、__exit__() (十五)

__enter__():在使用with语句时调用,会话管理器在代码块开始前调用,返回值与as后的参数绑定__exit__():会话管理器在代码块执行完成好后调用,在with语句完成时,对象销毁之前调用test.txt:Hello world!测试代码class Test(object): def __init__(self,name,flag): s

2015-09-23 23:10:51 12748

原创 Python __call__() (十四)

__call__() :__call__() 方法可以让类像方法一样被调用class Call(object): def __init__(self): pass def __call__(self,ret): ''' @summary: 将类对象当做方法直接使用时,调用该方法 ''' pri

2015-09-23 23:07:28 479

原创 Python __iter__()迭代器 (十三)

__iter__():迭代器,生成迭代对象时调用,返回值必须是对象自己,然后for可以循环调用next方法next():每一次for循环都调用该方法(必须存在)class A(object): def __init__(self,num): self.num = num self.start_num = -1 def __iter__(

2015-09-23 22:56:58 13262 2

原创 Python __len__()、__reversed__()、__contains__() (十二)

__len__():当使用len(A)该对象时调用该方法,当没有该方法是会报错,且返回数据不为整数也会报错class A(object): def __init__(self,num): self.num = num self.start_num = -1 def __len__(self): ''' @su

2015-09-23 22:43:38 15861 1

原创 Python __setitem__()、__getitem__()、__delitem__() (十一)

__xxxitem__:使用 [''] 的方式操作属性时被调用__setitem__:每当属性被赋值的时候都会调用该方法,因此不能再该方法内赋值 self.name = value 会死循环__getitem__:当访问不存在的属性时会调用该方法__delitem__:当删除属性时调用该方法class A(object): def __init__(self):

2015-09-23 22:33:47 6460

原创 Python __setattr__()、__getattr__()、__delattr__() (十)

第一次接触这几个方法时,是使用pymongo的时候。pymongo经常会使用['']或"."来获取数据库或集合对象。__xxxattr__:使用  '.' 的方式操作属性时被调用__setattr__:每当属性被赋值的时候都会调用该方法,因此不能再该方法内赋值 self.name = value 会死循环__getattr__:当访问不存在的属性时会调用该方法__delat

2015-09-23 22:17:29 2043

原创 Python 值类型 引用类型 和 深拷贝 浅拷贝 (九)

值类型:对象本身不允许修改,比如字符串,数值,元组引用类型:对象本身可以修改,比如列表,字典等我们对字符串,数值的修改实际上是让变量指向了一个新的对象a = 10print id(a)a = 20print id(a)输出:33521053L27629312L对列表字典的修改则是修改该对象本身l = [1,2,3]print id(l)l[0] = 0print

2015-09-23 21:17:29 4438

转载 Linux SVN 命令大全

1、将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/domain 简写:svn co 2、往版本库中添加新的文件 svn add file 例如:svn add test.php(添加test.php) svn add *.php(添

2015-09-23 11:10:19 528

原创 Python 经典类和新式类 super用法 (四)

在Python2.x的2.2以上版本中,新式类是继承object的类。经典类的MRO(基类搜索顺序)算法是深度优先。新式类的MRO算法是C3算法。经典类class A:passclass B:passclass C(B):passclass D(C,A):pass基类搜索顺序:D->C->B,->A[D,C,B,A]新式类class A(o

2015-09-22 22:21:20 3118

原创 Python 类 (三)

类的定义class A:pass方法和属性继承"_":保护方法或属性,只能被该类内部或子类内部调用,不能再类外部调用"__":私有方法或属性,只能在该类内部调用以字母开始的是公共属性或方法,可以在该类内部或子类内部以及外部使用class A(): def __init__(self): pass def _protec(self

2015-09-22 22:18:56 2346

原创 Python 常用内置函数 (二)

pow(x,y)  x的y次幂,相当于x**y x = 2y = 3print pow(x, y)range(),产生一个序列默认从0开始xrange(),与range功能相同,但是并不会立即创建一个列表,而是在每次迭代的时候生成一个值,在数据量较大时使用会节省内存print range(2,5)for i in xrange(2,5):print iround(

2015-09-21 22:01:41 1822

原创 Python sys模块常用方法 (六)

这个模块在处理编码和输入参数以及从定向输入输出的时候用的比较多。只记录一下自己用到的或者见到比较多的:import syssys.argv #允许脚本时的输入参数,例如:python test.py 1 2 argv[0]:test.py,argv[1]:1,argv[2]:2sys.exit() #退

2015-09-17 22:48:55 1261

原创 python os模块常用方法 (五)

os模块是Python最常用的模块之一,包含很多操作文件、目录系统的功能。(话说,去年毕业的时候本来是做C的,后来Python人走了,然后接了Python,没有人带,做了半年,居然接触这个模块...面试的时候被这些基础东西难倒了好多次)常用的os方法import osos.name() #返回系统标志Windows:nt;Linux:posix

2015-09-17 21:44:45 701

原创 python 进程相关 (八)

通用线程模块:multiprocessingmultiprocessing与线程的threading模块方法、结构类似,但多进程需要对每一个Process对象调用join()方法,以防止该进程成为僵尸进程process.PID 可以获取进程的ID,进程start之前为空process.terminate() 强行终止进程(在join()前使用)process

2015-09-17 18:10:21 1950

原创 python 线程相关 (七)

最简单的启动线程import threadingthread = threading.Thread(target = func, args = (1,2,3))cmdServer.start()threading.Thread.run() 调用func,threading.Thread.start() 则会调用包含run()的方法。在执行threading.Thread.start()时候

2015-09-17 17:10:37 2200

原创 python 基础数据类型 (一)

字符串字符串是最 Python 中常用的数据类型,可以对字符串进行索引,切片及迭代。在python中字符串是不可变的,一旦声明,不能改变;对字符串变量的赋值和修改实际上是新建了一个相同变量名的对象。注意:由于字符串是不可变的,在使用索引修改字符串是不允许的var1 = 'python'print id(var1)var1 = 'PHP'print id(var1) var

2015-09-17 16:50:52 2211

原创 模拟登录-知乎

cookielib:该模块用于操作cookiecookielib.CookieJar()用于处理cookie,不过在urllib2.HTTPCookieProcessor中对其进行了封装所以cookieJar=cookielib.CookieJar()opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cookieJar)).open(

2015-09-13 22:48:48 997

原创 pymongo 模块分析

在pymongo 2.x版本中连接有'MongoClient', 'MongoReplicaSetClient','Connection'三种方式,其中'Connection'不建议使用。    在pymongo 3.x版本中已经没有了'Connection','MongoClient'是在pymongo中连接mongodb服务器的基础类。'''Client for a MongoD

2015-09-09 19:41:46 6266

原创 观察者模式

#coding=utf-8'''Created on 2015-8-31@author: xhw@explain: pass'''class Subject: ''' @summary:被观察者; 被观察者一般被观察者需要有三个方法 1.register:添加监听者 2.deregister:移除监听者 3.notify_observe

2015-08-31 16:29:51 325

原创 python 高级属性

__setattr__、__getattr__、__delattr__、__setitem__、__getitem__、__delitem__方法作用

2015-08-27 19:05:31 622

原创 python 发送邮件

前阵子改了下邮件系统一些BUG,顺便了解下python的邮件模块#coding=utf8import smtplibimport mimetypesfrom email.header import Headerfrom email.mime.text import MIMETextfrom email.mime.multipart import MIMEMultipartfrom em

2015-08-27 16:11:51 1008

原创 Python subprocess注意问题

最近写了个脚本,需要执行第三方程序,并根据程序输出判断执行情况,当程序执行时间过长时kill该进程。因此选用了subprocess模块。process = subprocess.Popen(self.cmd,stdin = subprocess.PIPE, stdout = subprocess.PIPE, stderr = subprocess.PIPE, shell=True ,close

2015-08-27 09:52:47 2762

原创 PicklingError: Can't pickle <type 'thread.lock'>: attribute lookup thread.lock failed

错误原因:使用队列错误(Queue.Queue()不能用于进程间通信)当子进程执行的方法定义在类中时会报错:PicklingError: Can't pickle : attribute lookup __builtin__.instancemethod faileddef main(): manager = multiprocessing.Manager() queue =

2015-07-31 17:50:34 6093

CoreSeek/Sphinx中文手册

从官网上拷贝的内容,然后转的pdf;自己看的时候加了部分标签

2015-10-15

iOS 应用程序开发官方中文手册.pdf

iOS 应用程序开发官方中文手册,电子版,带目录

2015-01-29

MySQL经典教程(带目录)

自己在看的时候添加的目录,书很不错,简单易懂

2015-01-09

COCOS2D-X手机游戏开发.pdf

COCOS2D-X、手机游戏开发、IOS、安卓平台

2014-10-18

空空如也

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

TA关注的人

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