随笔分类 -  Python

摘要:下载8000首儿歌的python的代码:#-*- coding: UTF-8 -*-from pyquery import PyQuery as pyfrom lxml import etreeimport urllibimport reimport osimport sysimport loggingdef format(filename): tuple=(' ','’','\'') for char in tuple: if (filename.find(char)!=-1): filename=filename.replace(ch 阅读全文
posted @ 2013-12-29 16:15 iTech 阅读(2797) 评论(2) 推荐(1) 编辑
摘要:下载安装python2.7 : 最好是安装win32的,64bit的很多的lib都不支持。python-2.7.3http://python.org/getit/releases/2.7.3/下载安装ez_setup.py: setuptools-0.6c11.win32-py2.7http://pypi.python.org/pypi/setuptools下载安装pip: python setup.py installhttp://pypi.python.org/pypi/pip/1.2.1下载安装Django:python setup.py installhttps://www.djang 阅读全文
posted @ 2013-01-27 21:03 iTech 阅读(975) 评论(0) 推荐(0) 编辑
摘要:一 sqlite 与 python 的类型对应二 实例importsqlite3defsqlite_basic():#Connecttodbconn=sqlite3.connect('test.db')#createcursorc=conn.cursor()#Createtablec.execute('''createtableifnotexistsstocks(datetext,transtext,symboltext,qtyreal,pricereal)''')#Insertarowofdatac.execute('& 阅读全文
posted @ 2012-06-24 09:58 iTech 阅读(1258) 评论(1) 推荐(0) 编辑
摘要:一 Jsonhttp://json.org/json语法:1) string:value 可以看做是json的最小单位,json由string:value的集合组成,其中value中可以嵌套string:value;2) string为双引号包围的unicode字符串,特殊符号需要\来转义;3) value可以为string:value,array,string,number,true,false,null;一个实例:{"firstName":"John","lastName" :"Smith","adr 阅读全文
posted @ 2012-06-19 12:50 iTech 阅读(1736) 评论(0) 推荐(0) 编辑
摘要:一 base64Base64是一种基于64个可打印字符来表示二进制数据的表示方法。由于2的6次方等于64,所以每6个比特为一个单元,对应某个可打印字符。三个字节有24个比特,对应于4个Base64单元,即3个字节需要用4个可打印字符来表示。它可用来作为电子邮件的传输编码。在Base64中的可打印字符包括字母A-Z、a-z、数字0-9 ,这样共有62个字符,此外两个可打印符号在不同的系统中而不同。编码后的数据比原始数据略长,为原来的4/3。Base64常用于在通常处理文本数据的场合,表示、传输、存储一些二进制数据(或不可打印的字符串)。包括MIME的email,email via MIME, 在 阅读全文
posted @ 2012-06-18 10:00 iTech 阅读(2515) 评论(0) 推荐(0) 编辑
摘要:http://hyperpolyglot.org/scripting比较perl+pythonperl(1987)python(1991)基础模块导入usestrict;importos, re, sys版本查看$ perl-v$ python -V执行脚本$ perl foo.pl$ python foo.py交互模式$ perl -de 0$ python执行语句$ perl -e 'print("hi\n")'$ python -c "print('hi')"语句分隔;\n (newline)or;语句块{}Inde 阅读全文
posted @ 2012-04-28 13:03 iTech 阅读(6210) 评论(3) 推荐(1) 编辑
摘要:经常会遇到下载的文件或电子书,名字中间都包含了一些网址信息,实际使用中由于名字太长不方便,下面的脚本使用正则表达式来对目录下的所有文件重命名:例如:修改前:[大家网]Mac OS X for Unix Geeks[www.TopSage.com].mobi修改后:Mac OS X for Unix Geeks.mobipython代码如下importosimportredefrename_dir(dir,regex,f):ifnotos.path.isdir(dir)ornotos.path.exists(dir):print("Theinputisnotonedirectoryor 阅读全文
posted @ 2012-04-22 10:06 iTech 阅读(2112) 评论(1) 推荐(0) 编辑
摘要:参考:http://wiki.python.org/moin/ParallelProcessinghttp://wiki.python.org/moin/DistributedProgramming分布式:http://www.celeryproject.org/http://www.parallelpython.com/http://code.google.com/p/distributed-python-for-scripting/http://code.google.com/p/superpy/http://code.google.com/appengine/cloud:http://w 阅读全文
posted @ 2012-01-10 18:36 iTech 阅读(5712) 评论(0) 推荐(0) 编辑
摘要:一 picklepickle模块用来实现python对象的序列化和反序列化。通常地pickle将python对象序列化为二进制流或文件。python对象与文件之间的序列化和反序列化:pickle.dump()pickle.load()如果要实现python对象和字符串间的序列化和反序列化,则使用:pickle.dumps()pickle.loads()可以被序列化的类型有:* None,True 和 False;* 整数,浮点数,复数;* 字符串,字节流,字节数组;* 包含可pickle对象的tuples,lists,sets和dictionaries;* 定义在module顶层的函数:* 定 阅读全文
posted @ 2012-01-10 17:49 iTech 阅读(5105) 评论(0) 推荐(2) 编辑
摘要:Python中进程间共享数据,处理基本的queue,pipe和value+array外,还提供了更高层次的封装。使用multiprocessing.Manager可以简单地使用这些高级接口。Manager()返回的manager对象控制了一个server进程,此进程包含的python对象可以被其他的进程通过proxies来访问。从而达到多进程间数据通信且安全。Manager支持的类型有list,dict,Namespace,Lock,RLock,Semaphore,BoundedSemaphore,Condition,Event,Queue,Value和Array。1) Manager的dic 阅读全文
posted @ 2012-01-10 14:49 iTech 阅读(18722) 评论(0) 推荐(0) 编辑
摘要:同步的方法基本与多线程相同。1) Lock当多个进程需要访问共享资源的时候,Lock可以用来避免访问的冲突。importmultiprocessingimportsysdefworker_with(lock,f):withlock:fs=open(f,"a+")fs.write('Lockacquiredviawith\n')fs.close()defworker_no_with(lock,f):lock.acquire()try:fs=open(f,"a+")fs.write('Lockacquireddirectly\n 阅读全文
posted @ 2012-01-10 13:57 iTech 阅读(4129) 评论(0) 推荐(0) 编辑
摘要:多进程通信queue和pipe的区别: pipe用来在两个进程间通信。queue用来在多个进程间实现通信。 此两种方法为所有系统多进程通信的基本方法,几乎所有的语言都支持此两种方法。1)Queue & JoinableQueuequeue用来在进程间传递消息,任何可以pickle-able的对象都可以在加入到queue。multiprocessing.JoinableQueue 是 Queue的子类,增加了task_done()和join()方法。task_done()用来告诉queue一个task完成。一般地在调用get()获得一个task,在task结束后调用task_done() 阅读全文
posted @ 2012-01-09 16:38 iTech 阅读(6167) 评论(0) 推荐(1) 编辑
摘要:由于CPython实现中的GIL的限制,python中的多线程其实并不是真正的多线程,如果想要充分地使用多核CPU的资源,在python中大部分情况我们需要使用多进程。 这也许就是python中多进程类库如此简洁好用的原因所在。在python中可以向多线程一样简单地使用多进程。一 多进程process的成员变量和方法:>>class multiprocessing.Process([group[, target[, name[, args[, kwargs]]]]]) 来的定义类似于threading.Thread。target表示此进程运行的函数,args和kwargs表示tar 阅读全文
posted @ 2012-01-06 16:53 iTech 阅读(2831) 评论(3) 推荐(0) 编辑
摘要:转自:http://blog.csdn.net/lanphaday/article/details/6601123但是有些如果与python自带的类库有冲突的做了适当的修改。1 编码>>所有的 Python 脚本文件都应在文件头标上如下标识或其兼容格式的标识:# -*- coding:utf-8 -*- >>设置编辑器,默认新建或保存为utf-8格式。2 注释>>业界普遍认同 Python 的注释分为两种的概念,一种是由 # 开头的“真正的”注释,另一种是 docstrings。前者表明为何选择当前实现以及这种实现的原理和难点,后者表明如何使用这个包、模块、 阅读全文
posted @ 2012-01-06 14:49 iTech 阅读(2632) 评论(1) 推荐(0) 编辑
摘要:多线程基础:python类库32[多线程同步]一 多线程同步由于CPython的python解释器在单线程模式下执行,所以导致python的多线程在很多的时候并不能很好地发挥多核cpu的资源。大部分情况都推荐使用多进程。python的多线程的同步与其他语言基本相同,主要包含:Lock & RLock :用来确保多线程多共享资源的访问。Semaphore : 用来确保一定资源多线程访问时的上限,例如资源池。Event : 是最简单的线程间通信的方式,一个线程可以发送信号,其他的线程接收到信号后执行操作。 二 实例1)Lock & RLockLock对象的状态可以为locked和u 阅读全文
posted @ 2012-01-05 18:29 iTech 阅读(4628) 评论(0) 推荐(1) 编辑
摘要:一 python 多线程因为CPython的实现使用了Global Interpereter Lock(GIL),使得python中同一时刻只有一个线程在执行,从而简化了python解释器的实现,且python对象模型天然地线程安全。如果你想你的应用程序在多核的机器上使用更好的资源,建议使用multiprocessing或concurrent.futures.processpoolexecutor。但是如果你的程序是IO密集型,则使用线程仍然是很好的选择。二 python 多线程使用的两种方法实例:importthreadingimporttimedefworker(num):print(th 阅读全文
posted @ 2012-01-04 17:33 iTech 阅读(1915) 评论(0) 推荐(0) 编辑
摘要:一 闭包来自wiki:闭包(Closure)是词法闭包(Lexical Closure)的简称,是引用了自由变量的函数。这个被引用的自由变量将和这个函数一同存在,即使已经离开了创造它的环境也不例外。所以,有另一种说法认为闭包是由函数和与其相关的引用环境组合而成的实体。在一些语言中,在函数中定义另一个函数时,如果内部的函数引用了外部的函数的变量,则可能产生闭包。运行时,一旦外部的 函数被执行,一个闭包就形成了,闭包中包含了内部函数的代码,以及所需外部函数中的变量的引用。闭包的用途:因为闭包只有在被调用时才执行操作,所以它可以被用来定义控制结构。多个函数可以使用一个相同的环境,这使得它们可以通过改 阅读全文
posted @ 2011-12-31 15:35 iTech 阅读(1224) 评论(3) 推荐(0) 编辑
摘要:一 装饰器decoratordecorator设计模式允许动态地对现有的对象或函数包装以至于修改现有的职责和行为,简单地讲用来动态地扩展现有的功能。其实也就是其他语言中的AOP的概念,将对象或函数的真正功能也其他辅助的功能的分离。二Python中的decoratorpython中的decorator通常为输入一个函数,经过装饰后返回另一个函数。 比较常用的功能一般使用decorator来实现,例如python自带的staticmethod和classmethod。装饰器有两种形式:@Adeffoo():pass相当于:deffoo():passfoo=A(foo)第二种为带参数的:@A(arg 阅读全文
posted @ 2011-12-31 14:53 iTech 阅读(5085) 评论(1) 推荐(0) 编辑
摘要:通常地我们要在不同平台间共享文件,samba,ftp,cifs,ntfs的设置都是有点复杂的, 我们可以使用python提供的httpserver来提供基于http方式跨平台的文件共享。一 命令行启动简单的httpserver进入到web或要共享文件的根目录,然后执行(貌似在python32中此module不存在了):python -m SimpleHTTPServer 8000然后你就可以使用http://你的IP地址:8000/来访问web页面或共享文件了。二 代码启动httpserversimplehttpservertest.pyimportsysimportlocaleimporth 阅读全文
posted @ 2011-12-31 14:03 iTech 阅读(58400) 评论(1) 推荐(0) 编辑
摘要:python引用变量的顺序: 当前作用域局部变量->外层作用域变量->当前模块中的全局变量->python内置变量一 globalglobal关键字用来在函数或其他局部作用域中使用全局变量。但是如果不修改全局变量也可以不使用global关键字。gcount=0defglobal_test():print(gcount)defglobal_counter():globalgcountgcount+=1returngcountdefglobal_counter_test():print(global_counter())print(global_counter())print(g 阅读全文
posted @ 2011-12-31 13:10 iTech 阅读(23038) 评论(2) 推荐(2) 编辑

点击右上角即可分享
微信分享提示