是什么:首先,Python装饰器的作用是:让被装饰的函数在不需要任何变化的情况下,增加额外的功能。为什么:为什么要用装饰器呢,直接增加功能不就行了?因为有的程序已经上线或已经被使用,那么就不能大批量的修改源代码,于是就产生了装饰器。怎么装饰:预备知识:函数名和函数的区别,即带括号和不带括号的区别1.test1表示的是函数的内存地址。可以理解为一个指向某块内存的标签。2.test1()就是调用对在test1这个地址的内容,即函数。3.再通俗的比喻,test1
系统 2019-09-27 17:52:54 2070
原文链接:https://aiprocon.csdn.net/?utm_source=wx作者|豌豆花下猫来源|Python猫(ID:python_cat)Python中的sys模块极为基础而重要,它主要提供了一些给解释器使用(或由它维护)的变量,以及一些与解释器强交互的函数。本文将会频繁地使用该模块的getsizeof()方法,因此,我先简要介绍一下:该方法用于获取一个对象的字节大小(bytes)它只计算直接占用的内存,而不计算对象内所引用对象的内存这里
系统 2019-09-27 17:52:44 2070
requests库的安装:ubuntu和windows下安装requests库:pipinstallrequestsrequests的介绍:Requests是一个优雅而简单的PythonHTTP库requests的文档:中文版:http://cn.python-requests.org/zh_CN/latest/英文版:http://docs.python-requests.org/en/master/api/requests的基本用法:Get请求:(一)
系统 2019-09-27 17:52:36 2070
前言上项目的时候,遇见一次需求,需要把在线的其中一个collection里面的数据迁移到另外一个collection下,于是就百度了看到好多文章,其中大部分都是使用导入的方法,没有找到在线数据的迁移方法。于是写了python脚本,分享出来。思路:collection数据量比较大,所以一次性操作所有数据太大,于是分段执行操作。先分段按1000条数据量进行查询,处理成json数据把处理后的json数据发送到目的collection上即可实现:一、使用http的
系统 2019-09-27 17:52:33 2070
问题:用两个栈来实现一个队列,完成队列的Push和Pop操作。分析:栈的特性是“先进后出”,队列为“先进先出”。思路:入队:直接把新元素压入stack1即可。出队:根据队列先进先出的性质,由于先进入队列的元素被压倒stack1的栈底,要想实现先入队列的先出队,需要将stack1中的元素逐个弹出并压入stack2,经过弹出和压入之后最先进入的元素就处于stack2的栈顶,有可以直接弹出。python实现代码:classSolution:def__init__
系统 2019-09-27 17:52:27 2070
一、zipfile模块的简述zipfile是python里用来做zip格式编码的压缩和解压缩的,由于是很常见的zip格式,所以这个模块使用频率也是比较高的,在这里对zipfile的使用方法做一些记录。即方便自己也方便别人。zipfile里有两个非常常用的class,分别是ZipFile和ZipInfo,在绝大多数的情况下,我们只需要使用这两个class就可以了。ZipFile是主要的类,用来创建和读取zip文件而ZipInfo是存储的zip文件的每个文件的
系统 2019-09-27 17:51:00 2070
今天主要是来说一下怎么可视化来监控你的爬虫的状态。相信大家在跑爬虫的过程中,也会好奇自己养的爬虫一分钟可以爬多少页面,多大的数据量,当然查询的方式多种多样。今天我来讲一种可视化的方法。关于爬虫数据在mongodb里的版本我写了一个可以热更新配置的版本,即添加了新的爬虫配置以后,不用重启程序,即可获取刚刚添加的爬虫的状态数据。1.成品图这个是监控服务器网速的最后成果,显示的是下载与上传的网速,单位为M。爬虫的原理都是一样的,只不过将数据存到InfluxDB的
系统 2019-09-27 17:50:52 2070
UnicodeDecodeError:'gbk'codeccan'tdecodebyte0x80inposition128:illegalmultibytesequence说到底是open()使用方法。原本程序是这样的:(重点看第4行)fromtkinterimport*importosdefopenFile():f=open('D:\Pythoncharmprojccts\SC\main_window.py',mode='r')whileTrue:dat
系统 2019-09-27 17:50:35 2070
事情是这样的,我写了一个tornado的服务,过程当中我用logging记录一些内容,由于一开始并没有仔细观察tornado自已的日志管理,所以我就一般用debug来记录普通日志,error记录有问题的日志,但是当服务跑起来以后才发现,tornado的访问日志的级别是info,也就是20,debug是10的,所以如果我定义了日志的级别是debug,那么默认情况下肯定也会输出到日志文件中的。但是我现在并不关心访问日志,而且由于我这个服务可能每时每刻都会有访问
系统 2019-09-27 17:50:30 2070
IDLE中的快捷键:Ctrl+[、Ctrl+]缩进、取消缩进代码Alt+3、Alt+4注释、取消注释当前代码行Alt+NAlt+P下一条命令和上一条命令(注:命令即历史输入内容)Alt+/提示代码中出现过的字符串,自动补齐,多按几次可以循环选择Alt+M打开模块代码,先选中模块,然后按下此快捷键,会帮你打开模块的Py源码供浏览Alt+C打开类浏览器,方便在源码文件中的各个方法体之间切换Alt+FP打开路径浏览器,方便选择导入包进行查看浏览F1打开Pytho
系统 2019-09-27 17:50:15 2070