Python

老生常谈Python进阶之装饰器

函数也是对象要理解Python装饰器,首先要明白在Python中,函数也是一种对象,因此可以把定义函数时的函数名看作是函数对象的一个引用。既然是引用,因此可以将函数赋值给一个变量,也可以把函数作为一个参数传递或返回。同时,函数体中也可以再定义函数。装饰器本质可以通过编写一个纯函数的例子来还原装饰器所要做的事。defdecorator(func):defwrap():print("Doingsometingbeforeexecutingfunc()")fun

系统 2019-09-27 17:55:37 2089

Python

Python下opencv图像阈值处理的使用笔记

图像的阈值处理一般使得图像的像素值更单一、图像更简单。阈值可以分为全局性质的阈值,也可以分为局部性质的阈值,可以是单阈值的也可以是多阈值的。当然阈值越多是越复杂的。下面将介绍opencv下的三种阈值方法。(一)简单阈值简单阈值当然是最简单,选取一个全局阈值,然后就把整幅图像分成了非黑即白的二值图像了。函数为cv2.threshold()这个函数有四个参数,第一个原图像,第二个进行分类的阈值,第三个是高于(低于)阈值时赋予的新值,第四个是一个方法选择参数,常

系统 2019-09-27 17:51:13 2089

Python

使用OpCode绕过Python沙箱的方法详解

0x01OpCodeopcode又称为操作码,是将python源代码进行编译之后的结果,python虚拟机无法直接执行human-readable的源代码,因此python编译器第一步先将源代码进行编译,以此得到opcode。例如在执行python程序时一般会先生成一个pyc文件,pyc文件就是编译后的结果,其中含有opcode序列。如何查看一个函数的OpCode?defa():if1==2:print("flag{****}")print"Opcodeo

系统 2019-09-27 17:48:42 2089

Python

python async with和async for的使用

网上asyncwith和asyncfor的中文资料比较少,我把PEP492中的官方陈述翻译一下。异步上下文管理器”asyncwith”异步上下文管理器指的是在enter和exit方法处能够暂停执行的上下文管理器。为了实现这样的功能,需要加入两个新的方法:__aenter__和__aexit__。这两个方法都要返回一个awaitable类型的值。异步上下文管理器的一种使用方法是:classAsyncContextManager:asyncdef__aente

系统 2019-09-27 17:47:04 2089

Python

使用Python的urllib2模块处理url和图片的技巧两则

获取带有中文参数的url内容对于中文的参数如果不进行编码的话,python的urllib2直接处理会报错,我们可以先将中文转换成utf-8编码,然后使用urllib2.quote方法对参数进行url编码后传递。content=u'你好sharejs.com'content=content.encode('utf-8')content=urllib2.quote(content)api_url='http://www.sharejs.com/q=%s'%co

系统 2019-09-27 17:38:06 2089

Python

Windows 中 Python 多版本共存问题

Windows中Python多版本共存问题(Windows10)很多时候,一个版本的python无法满足需求,就需要在一台机器上面安装多个版本的python在Linux系统中安装多版本很容易,今天在此记录一下在Windows中进行多版本Python安装首先需要去到Python官网下载两个版本的Python由于我经常使用的是Python3版本,所以我先安装的是Python3版本,正常安装过后,将Python3安装路径加入到PATH环境变量中分别为:(每个人的

系统 2019-09-27 17:56:31 2088

Python

Python进阶_关于命名空间与作用域(详解)

写在前面如非特别说明,下文均基于Python3命名空间与作用于跟名字的绑定相关性很大,可以结合另一篇介绍Python名字、对象及其绑定的文章。1.命名空间1.1什么是命名空间Namespace命名空间,也称名字空间,是从名字到对象的映射。Python中,大部分的命名空间都是由字典来实现的,但是本文的不会涉及命名空间的实现。命名空间的一大作用是避免名字冲突:deffun1():i=1deffun2():i=2同一个模块中的两个函数中,两个同名名字i之间绝没有

系统 2019-09-27 17:55:24 2088

Python

Python之str操作方法(详解)

1.str.format():使用“{}”占位符格式化字符串(占位符中的索引号形式和键值对形式可以混合使用)。>>>string='python{},django{},tornado{}'.format(2.7,'web','tornado')#有多少个{}占位符就有多少个值与其对应,按照顺序“填”进字符串中>>>string'python2.7,djangoweb,tornadotornado'>>>string='python{},django{},t

系统 2019-09-27 17:55:07 2088

Python

在Python中过滤Windows文件名中的非法字符方法

网上有三种写法:第一种(所有非法字符都不转义):defsetFileTitle(self,title):fileName=re.sub('[\/:*?"<>|]','-',title)#去掉非法字符self.file=open(fileName+".txt","w+")\非法字符必须转义,否则\/被解释为/第二种(所有非法字符都转义):defvalidateTitle(title):rstr=r"[\/\\\:\*\?\"\<\>\|]"#'/\:*?"<

系统 2019-09-27 17:54:39 2088

Python

每周一书《Python神经网络编程》分享

内容简介神经网络是一种模拟人脑的神经网络,以期能够实现类人工智能的机器学习技术。本书揭示神经网络背后的概念,并介绍如何通过Python实现神经网络。全书分为3章和两个附录。第1章介绍了神经网络中所用到的数学思想。第2章介绍使用Python实现神经网络,识别手写数字,并测试神经网络的性能。第3章带领读者进一步了解简单的神经网络,观察已受训练的神经网络内部,尝试进一步改善神经网络的性能,并加深对相关知识的理解。附录分别介绍了所需的微积分知识和树莓派知识。本书适

系统 2019-09-27 17:54:35 2088

Python

Linux下编译安装MySQL-Python教程

1、下载mysql-python官网地址:http://sourceforge.net/projects/mysql-python/2、安装mysql-python复制代码代码如下:#tar-zxvfMySQL-python-1.2.3.tar.gz#cdMySQL-python-1.2.3#whereismysql_configmysql_config:/usr/bin/mysql_config/usr/share/man/man1/mysql_conf

系统 2019-09-27 17:52:38 2088

Python

win8.1安装Python 2.7版环境图文详解

Python相信大家都有所耳闻,特别是Python进入山东省小学教材,还列入全国计算机等级考试。打算爬网易云音乐评论的我,首先要安装一个Python环境。目前Python有2.x版和3.x版,在进行比较后,我选择了2.7版本。首先,仍然是百度搜索Python关键词,进入官网。首页即可快速下载最新版本。我要安装的是2.7版本,所以选择导航条上的Downloads。点击Downloads后我们发现这里有多个版本,我们可以点击选择我们需要下载的版本。点击版本后,

系统 2019-09-27 17:52:13 2088

Python

Python代码使用 Pyftpdlib实现FTP服务器功能

当你想快速共享一个目录的时候,这是特别有用的,只需要1行代码即可实现。FTP服务器,在此之前我都是使用Linux的vsftpd软件包来搭建FTP服务器的,现在发现了利用pyftpdlib可以更加简单的方法即可实现FTP服务器的功能。环境要求Python2.7Windows/Linux环境搭建pipinstallpyftpdlib一行代码实现FTP服务器通过Python的-m选项作为一个简单的独立服务器来运行,当你想快速共享一个目录的时候,这是特别有用的。在

系统 2019-09-27 17:46:58 2088

Python

Python爬虫动态ip代理防止被封的方法

在爬取的过程中难免发生ip被封和403错误等等,这都是网站检测出你是爬虫而进行反爬措施,在这里为大家总结一下怎么用IP代理防止被封首先,设置等待时间:常见的设置等待时间有两种,一种是显性等待时间(强制停几秒),一种是隐性等待时间(看具体情况,比如根据元素加载完成需要时间而等待)图1是显性等待时间设置,图2是隐性第二步,修改请求头:识别你是机器人还是人类浏览器浏览的重要依据就是User-Agent,比如人类用浏览器浏览就会使这个样子的User-Agent:'

系统 2019-09-27 17:46:26 2088

Python

python 查询Neo4j多节点的多层关系

需求:查询出满足3人及3案有关系的集合#-*-coding:utf-8-*-frompy2neoimportGraphimportpsycopg2#二维数组查找deffind(target,array):fori,valinenumerate(array):forj,tempinenumerate(val):iftemp==target:returnTrue;returnFalsegraph=Graph(host="192.168.3.186://7474

系统 2019-09-27 17:46:25 2088