
Python3
。。
啊啊啊西吧
写点什么呢
展开
-
python闭包与装饰器
在一些语言中,在函数中可以(嵌套)定义另一个函数时,如果内部的函数引用了外部的函数的变量,则可能产生闭包。闭包可以用来在一个函数与一组“私有”变量之间创建关联关系。在给定函数被多次调用的过程中,这些私有变量能够保持其持久性。——维基百科def make_printer(msg): def printer(): print msg # 夹带私货(外部变量) ...原创 2019-05-17 15:29:15 · 608 阅读 · 0 评论 -
python生成器:使用yield关键字定义迭代器
关于Python中的yield在介绍yield前有必要先说明下Python中的迭代器(iterator)和生成器(constructor)。一、迭代器(iterator)在Python中,for循环可以用于Python中的任何类型,包括列表、元祖等等,实际上,for循环可用于任何“可迭代对象”,这其实就是迭代器迭代器是一个实现了迭代器协议的对象,Python中的迭代器协议就是有next方法的对象会前转载 2017-04-06 21:33:02 · 1227 阅读 · 0 评论 -
python3批量重命名电影(windows下下载的电视剧)
最近下了一些电影,名字都太长了,想要批量重命名,强迫症写了一个脚本,如下:#!/usr/bin/pythonimport os;def rename(): path="F:\\迅雷下载" filenamelist=os.listdir(path) x=1 for fullname in filenamelist: try:原创 2017-03-14 15:49:53 · 3156 阅读 · 0 评论 -
python实例方法、静态方法、类方法
class Foo(object): def test(self)://定义了实例方法 print("object") @classmethod def test2(clss)://定义了类方法 print("class") @staticmethod def test3()://定义了静态方法 print("s原创 2017-04-17 21:08:10 · 639 阅读 · 0 评论 -
python2x与3x下urlretrieve的使用
1、python2x下urlretrieve方法: 直接将远程数据下载到本地。 urllib.urlretrieve(url[, filename[, reporthook[, data]]]) 参数说明: url:外部或者本地url filename:指定了保存到本地的路径(如果未指定该参数,urllib会生成一个临时文件来保存数据); reporthook:是一个回调函数,当连接上服原创 2017-03-13 22:44:09 · 17354 阅读 · 3 评论 -
详解:Python2中的urllib、urllib2与Python3中的urllib以及第三方模块requests
先说说Python2中的url与urllib2(参考此处):urllib和urllib2都是接受URL请求的相关模块,但是提供了不同的功能。两个最显著的不同如下:1、urllib2可以接受一个Request类的实例来设置URL请求的headers,例如: req = urllib2.Request( url=url, data=post原创 2016-04-14 10:30:07 · 86508 阅读 · 7 评论 -
python并发库:concurrent.futures的使用
第一次接触futures这个库是在tornado中,4.0的tornado会经常的使用他,因为tornado本身的那个corouting的异步功能,是需要逻辑里面所调用的模块本身就支持异步才可以的。而且如果用futures之后,在一定程度上缓解了这个事情。 concurrent.futures 是python3新增加的一个库,用于并发处理,提供了多线程和多进程的并发功能 类似于其他语言里的线程池(转载 2017-04-06 22:47:40 · 11102 阅读 · 0 评论 -
python中的异常处理:try...except...else...finally语句
与 其他语言相同,在python中,try/except语句主要是用于处理程序正常执行过程中出现的一些异常情况,如语法错误(python作为脚本语言 没有编译的环节,在执行过程中对语法进行检测,出错后发出异常消息)、数据除零错误、从未定义的变量上取值等;而try/finally语句则主要用于在 无论是否发生异常情况,都需要执行一些清理工作的场合,如在通信过程中,无论通信是否发生错误,都需要在通转载 2016-04-14 16:23:22 · 16927 阅读 · 0 评论 -
关于Python正则re中的(.*?)
首先来看看他们的基本含义:点星问号(md一直不明白水印为什么不是我的主页而是csdn的主页)正则表达式通常用于在文本中查找匹配的字符串。Python里数量词默认是贪婪的(在少数语言里也可能是默认非贪婪),总是尝试匹配尽可能多的字符;非贪婪的则相反,总是尝试匹配尽可能少的字符。例如:正则表达式"ab*"如果用于查找"abbbc",将找到"abbb"。而如果使用非贪婪的数量词"原创 2016-04-12 20:02:39 · 12007 阅读 · 2 评论 -
linux/python正则表达式与通配符的不同
1、正则表达式在Python中,可以参考此处2、Linux中的正则表达式与通配符的不同。首先正则表达式与通配符是完全不一样的东西!在文本过滤工具里,都是用正则表达式,比如像awk,sed,vi,grep,这些是针对文件的内容的,re是一种字符串处理的表示方式而通配符多用在文件名上,比如查找find,ls,cp,等等,wtilcard代表的是bash操作接口的一个功能原创 2016-04-28 10:21:49 · 12540 阅读 · 2 评论 -
python使用zeroMQ库的套接字模拟服务器客户端通信
首先是等待请求的服务器:import zmqhost = '127.0.0.1'port = 6789context = zmq.Context()server = context.socket(zmq.REP)server.bind("tcp://%s:%s" % (host, port))while True: # Wait for next request fro原创 2016-03-28 09:35:54 · 949 阅读 · 0 评论 -
Python 正则re模块之compile()和findall()详解
下面是Python3.5官方文档里关于的compile的说明:re.compile(pattern, flags=0)Compile a regular expression pattern into a regular expression object, which can be used for matching using its match() and search() metho原创 2016-04-12 16:41:13 · 91687 阅读 · 2 评论 -
由浅入深理解Python装饰器
前提知识:1、Python里函数也是一种对象:def shout(word="yes"): return word.capitalize()+"!"print shout()# outputs : 'Yes!'# As an object, you can assign the function to a variable like any# other object原创 2016-03-23 10:29:26 · 908 阅读 · 2 评论 -
Anaconda使用指南
一、为什么选择Anaconda? 1.1 什么是 Anaconda?Anaconda是专注于数据分析的Python发行版本,包含了conda、Python等190多个科学包及其依赖项。1.2 什么是 conda ?conda 是开源包(packages)和虚拟环境(environment)的管理系统。packages 管理: 可以使用 conda 来安装、更新 、卸载工具包 ,并且它更关注于数据科转载 2018-01-03 15:11:18 · 3393 阅读 · 0 评论 -
PyQt5 与PyQt4的区别
1、不与 PyQt4 兼容 2、不再对Python老版本提供支持(Python 2.6 之前) 3、不再实现PyQt4不推荐的API接口PyQt5 不支持任何在PyQt4版本中标记为不推荐或舍弃的Qt API(如果有就会当Bug处理) 4、不再提供多版本API接口PyQt4 支持多版本的API(如QString ,QVariant 等) PyQt5 只支持最新的API版本(除QVarian转载 2017-08-17 09:49:34 · 6334 阅读 · 1 评论 -
python增强的格式化字符串format函数
自python2.6开始,新增了一种格式化字符串的函数str.format(),可谓威力十足。那么,他跟之前的%型格式化字符串相比,有什么优越的存在呢?让我们来揭开它羞答答的面纱。语法: 它通过{}和:来代替%。映射示例:通过位置In [1]: '{0},{1}'.format('kzc',18) Out[1]: 'kzc,18' In [2]: '{},{}'.format('kzc',转载 2017-07-25 09:19:29 · 393 阅读 · 0 评论 -
其他语言无法比拟的Python特性
Python有着丰富精巧的功能和技巧,会让你惊叹“哇!Python这么酷”。 下面看看python特有的一些brilliant的特性: 1、生成器 生成器是产生一个值的序列的对象,它可以用作迭代器,也就是可以用于for语句,或者用于next函数中来得到下一个值。 含有yield关键字的函数就是生成器,如:def fibonacci_generator(): a, b = 0, 1翻译 2017-08-01 14:44:16 · 624 阅读 · 0 评论 -
基于pyqt5+python3.4的简单界面小程序demo
任务: 今天有一个需求,是每天统计出参加银联扫码活动的商家信息,主扫的交易笔数,总金额,被扫的交易笔数,总金额,以及主扫+被扫的统计信息。 分析:首先要做个程序,每天跑一下就生成结果文件,或者直接显示出结果。涉及到的有: 1、使用cx_oracle查询,获取数据,数据存入本地文件或者显示到ui的文本框/标签中。 2、打算不再使用tkinter,转用很强大的qt库,pyqt5,来做界面 3、原创 2017-07-21 15:41:58 · 1735 阅读 · 0 评论 -
python3脚本使用sql loader批量导入字节文件并二次处理
由于使用cx_oracle连接oracle然后导入数据文件速度太慢(要导的数据有几百G),出于速度的考虑,选择了oracle自带的sql loader工具,使用python脚本写界面,与用户交互,然后使用system()去批量调用sql loader,对于导入失败的bad数据以及日志数据,我用了c++写了一个程序,把bad文件转换成了ok的数据,然后又写了一个脚本处理这些bad数据。 1、pyth原创 2017-07-03 14:46:55 · 6387 阅读 · 0 评论 -
cups数据自动导入软件开发
1.环境配置与疑难问题解决 先是在我自己电脑上开发的,最终环境如下: win7 64位,python3.4.4 64位,Oracle 11g Release 2 (11.2.0.1.0) 64位 另,编辑器用的notepad++和ultraedit oracle 下载:要先在oracle官网注册账号,32位下载地址 64位下载地址 安装:即使版本对了也是各种问题原创 2017-06-15 20:05:35 · 521 阅读 · 0 评论 -
python杂记
python写的快速排序算法:def qsort(seq): if seq==[]: return[] else: pivot=seq[0] lesser=qsort([x for x in seq[1:] if x <pivot]) greater=qsort([x for x in seq原创 2017-05-16 22:27:39 · 422 阅读 · 0 评论 -
tornado框架的学习与应用
简单介绍一下所使用的高并发框架tornado,它是一个用python编写的可扩展的非阻塞式web服务器及其相关工具的开源框架,在处理严峻的网络流量时表现得足够强健,但却在创建和编写时有着足够的轻量级,并能够被用在大量的应用和工具中。 先简单介绍一下 用tornado实现的经典helloworld程序如下:import tornado.ioloopimport tornado.webclass原创 2017-05-02 21:33:34 · 4256 阅读 · 0 评论 -
python:if __name__ == '__main__'到底有什么用?
1、首先这句话并不是类似其他编程语言里的main()函数,python程序是自上而下执行的,不需要main入口 2、有句话经典的概括了这段代码的意义:“Make a script both importable and executable”,意思就是说让你写的脚本模块既可以导入到别的模块中用,另外该模块自己也可执行。 在python编译器读取源文件的时候会执行它找到的所有代码,而在执行之前会根原创 2017-03-10 09:17:38 · 3109 阅读 · 1 评论 -
python os模块详解
os.sep:取代操作系统特定的路径分隔符 os.name:指示你正在使用的工作平台。比如对于Windows,它是’nt’,而对于Linux/Unix用户,它是’posix’。 os.getcwd:得到当前工作目录,即当前python脚本工作的目录路径。 os.getenv()和os.putenv:分别用来读取和设置环境变量 os.listdir():返回指定目录下的所有文件和目录名 os转载 2017-03-06 19:24:21 · 757 阅读 · 0 评论 -
简单Python3爬虫程序(3)进阶:登录、解压缩、cookies
import gzipimport reimport http.cookiejarimport urllib.requestimport urllib.parsedef ungzip(data): try: # 尝试解压 print('正在解压.....') data = gzip.decompress(data)原创 2016-04-07 21:30:09 · 3505 阅读 · 1 评论 -
python 装饰器
使用time()的一个程序:import timedef timer(func): def _timer(*args,**kwargs): #参数是函数调用传递过来的参数 begin=time.time() time.sleep(2) func(*args,**kwargs) a = time.time()-begin原创 2016-03-15 10:36:32 · 662 阅读 · 0 评论 -
python的zeroMQ介绍
简介:ZeroMQ并不是一个对socket的封装,不能用它去实现已有的网络协议。它有自己的模式,不同于更底层的点对点通讯模式。它有比tcp协议更高一级的协议。(当然ZeroMQ不一定基于TCP协议,它也可以用于进程间和进程内通讯)它改变了通讯都基于一对一的连接这个假设。 ZeroMQ把通讯的需要看成4类,其中一类是一对一结对通讯,用来支持传统的TCP转载 2016-03-25 16:28:03 · 1012 阅读 · 0 评论 -
python中的is和==
Python中的对象包含三要素:id、type、value其中id用来唯一标识一个对象,type标识对象的类型,value是对象的值is判断的是a对象是否就是b对象,是通过id来判断的==判断的是a对象的值是否和b对象的值相等,是通过value来判断的>>> a = 1>>> b = 1.0>>> a is bFalse>>> a == bTrue>>>转载 2016-03-14 16:08:02 · 447 阅读 · 0 评论 -
Python中enumerate()函数的用法
我们先来看看看几个简单的例子:>>> for i,j in enumerate(('a','b','c')): print i,j 0 a1 b2 c>>> for i,j in enumerate([1,2,3]): print i,j 0 11 22 3>>> for i,j in enumerate({'a':1,'b':2}): print i,j 0 a原创 2016-03-15 16:42:33 · 1234 阅读 · 0 评论 -
python windows下安装模块(defusedxml为例)
windows下安装python的第三方模块,下面以defusedxml模块为例:官方下载地址:https://pypi.python.org/pypi/defusedxml/#downloads1、下载到本地后,解压下载包,里面有个setup.py文件2、在cmd命令行下,切换到setup.py所在目录,执行python setup.py install3原创 2016-03-17 21:44:05 · 3582 阅读 · 1 评论 -
浅析python2x与python3x里的str,unicode,bytes关系
python2x中:[str].decode(str对应的编码)=[unicode],并且用什么码编码就用什么码解码[unicode].encode(你想要的编码方式)=[str],解释器编码方式要与字符串的编码方式一样才能解出正确的字符。python3x中:str不能解码了,str对象压根没有decode属性了,在Python3x中不在有unicode这一说了,只有s原创 2016-03-30 18:19:50 · 978 阅读 · 0 评论 -
Python不是内部或外部命令的解决办法
现在我假设你的python安装在D:\Python27目录下,设置环境变量方法如下: 【方法一】我的电脑->属性->高级->环境变量->系统变量 在系统变量里找到PATH,双击PATH,在结尾加上 ";D:\Python27"(不要引号) 【方法二】运行->cmd 输入set PATH=%PATH%;D:\Python27 接下来,再在当前的转载 2016-03-10 10:16:43 · 2969 阅读 · 0 评论 -
Python读取绝对路径下的文件的问题
f=open('C:\Users\dairen\PycharmProjects\untitled\hotel.txt',’rt‘)上面这句报错,我个人的解决方案有如下3种:f=open("C:\\Users\\dairen\\PycharmProjects\\untitled\\hotel.txt",'rt')f=open("C:/Users/dairen/PycharmP原创 2016-04-08 10:16:01 · 2513 阅读 · 0 评论 -
简单Python3爬虫程序(4)融合1,2:不知疲倦的爬虫
import reimport urllib.requestimport urllibfrom collections import dequeimport crawler2queue = deque()visited = set()url = 'http://www.baidu.com' oper = crawler2.makeMyOpener()queue.append(u原创 2016-04-11 16:34:02 · 934 阅读 · 0 评论 -
python备份脚本
#!/usr/bin/pythonimport osimport timesource=['/python','/root/mysql']target_dir='/pythonbak'target=target_dir+'/'+time.strftime('%Y%m%d%H%M%S')+'.zip'zip_command="zip -qr '%s' %s"%(target, ' '.jo转载 2017-03-09 22:28:32 · 433 阅读 · 0 评论 -
python2x与python3x区别:归纳整理与补充
首先两者的差别不大,最明显的区别在于调用print的方式,我们根据这就可一眼区分出2x还是3x版本,最重要的区别则是处理Unicode字符的方式。一、 print 从语句变为函数原: print 1, 2+3改为: print ( 1, 2+3 )二、range 与 xrange原 : range( 0, 4 ) 结果 是 列表 [0,1,2,3 ]改为:list( range(原创 2017-03-05 16:45:59 · 1418 阅读 · 0 评论 -
python:threading.Thread类的使用详解
Python Thread类表示在单独的控制线程中运行的活动。有两种方法可以指定这种活动: 1、给构造函数传递回调对象mthread=threading.Thread(target=xxxx,args=(xxxx))mthread.start()2、在子类中重写run() 方法 这里举个小例子:import threading, timeclass MyThread(threading.Th原创 2017-03-09 16:37:25 · 82740 阅读 · 2 评论 -
Python与anaconda3互相影响的解决方法
Windows下同时安装了Python3.5与anaconda3:1、在安装Python第三方模块时,总是安装到anaconda默认的环境下,安装不到Python3.5库,所以干脆就在anaconda自带的IPython下进行编程工作,使用的模块都用conda来安装,这时候我们需要知道当前的工作目录(很多时候要导入文件,读取文件),方法如下:import osos.getcwd()原创 2016-03-17 20:31:46 · 6079 阅读 · 0 评论 -
使用redis快速搭建发布-订阅系统(python3x)
发布者会发出包含话题和值的消息,订阅者会声明他们对什么话题感兴趣(声明要订阅什么话题,然后去listen),每个发布者只负责广播,并不知道谁在监听。发布者:redis_pub.pyimport redis import random conn = redis.Redis() cats = ['siamese', 'persian', 'maine coon', 'norwegian fores原创 2016-06-13 17:01:27 · 2693 阅读 · 0 评论 -
使用redis服务器实现队列(欢迎留言讨论)
以下环境都是python3.5环境1、启动redis服务器2、命令行运行dry客户端:python redis_dryer.py &其内容如下(不懂可以留言):import redisconn = redis.Redis()print('Dryer is starting')while True: msg = conn.blpop('dishes') if not原创 2016-03-25 10:52:37 · 525 阅读 · 0 评论