下面仅以多线程为例:首先需要明确几个概念:知识点一:当一个进程启动之后,会默认产生一个主线程,因为线程是程序执行流的最小单元,当设置多线程时,主线程会创建多个子线程,在python中,默认情况下(其实就是setDaemon(False)),主线程执行完自己的任务以后,就退出了,此时子线程会继续执行自己的任务,直到自己的任务结束,例子见下面一。知识点二:当我们使用setDaemon(True)方法,设置子线程为守护线程时,主线程一旦执行结束,则全部线程全部被
系统 2019-09-27 17:47:34 1994
测试的过程中经常需要截取屏幕,通常的做法是使用手机自带的截屏功能,然后将截屏文件复制出来,这种方法的优点是不需要连接数据线就可截屏,缺点则是生成的截屏文件命名是随机命名的,复制出来也比较麻烦。另一种方法是使用PC端的手机助手类软件。这里使用python编写一个截屏的脚本,双击运行脚本就OK,截屏成功后会将截屏文件已当前时间命名,并保存在存放脚本的当前路径的screenshot文件夹下:#!/usr/bin/envpythonimportosimportti
系统 2019-09-27 17:47:18 1994
Python命令行之旅:深入argparse(二)作者:HelloGitHub-ProdesireHelloGitHub的《讲解开源项目》系列,项目地址:https://github.com/HelloGitHub-Team/Article前言在上一篇“深入argparse(一)”的文章中,我们深入了解了argparse的包括参数动作和参数类别在内的基本功能,具备了编写一个简单命令行程序的能力。本文将继续深入了解argparse的进阶玩法,一窥探其全貌,助
系统 2019-09-27 17:47:15 1994
1.简介在编写代码时,往往涉及时间、日期、时间戳的相互转换。2.示例#引入模块importtime,datetime2.1str类型的日期转换为时间戳#字符类型的时间tss1='2013-10-1023:40:00'#转为时间数组timeArray=time.strptime(tss1,"%Y-%m-%d%H:%M:%S")printtimeArray#timeArray可以调用tm_year等printtimeArray.tm_year#2013#转为时
系统 2019-09-27 17:46:52 1994
在程序运行的过程中,所有的变量都是在内存中,比如定义一个dict1={“name”:“zhangsan”,“age”:20},我们对name属性进行修改,改"wangwu",但是一旦程序结束,变量所占用的内存就会被操作系统全部回收,如果没有把修改后的name存储到磁盘上,下次重新运行程序,属性name又会被初始化为"zhangsan"。这时候就会使用到序列化与反序列化,将序列化后的内容写入磁盘,这里会讲到pickle模块与json模块去实现序列化与反序列化
系统 2019-09-27 17:45:52 1994
概述如果程序处理的数据比较多、比较复杂,那么在程序运行的时候,会占用大量的内存,当内存占用到达一定的数值,程序就有可能被操作系统终止,特别是在限制程序所使用的内存大小的场景,更容易发生问题。下面我就给出几个优化Python占用内存的几个方法。说明:以下代码运行在Python3。举个栗子我们举个简单的场景,使用Python存储一个三维坐标数据,x,y,z。Dict使用Python内置的数据结构Dict来实现上述例子的需求很简单。>>>ob={'x':1,'y
系统 2019-09-27 17:45:34 1994
前言因为有一些网站需要每日检查是否有问题,所以需要一个报警监控的机制,这个需要你指定你发送的邮箱和你接收的邮箱,就可以做到对网站自动监控了。这里用的是python3.5需要安装的插件:1、smtplib:发邮件需要用到2、pycurl:访问网站时会需要用到3、linecache:在读取txt网站清单时需要用到具体思路:python程序从txt里面批量读取到网站的信息,通过Curl.py模拟浏览器去访问网站,并且把访问的结果写入到以自己的网站名称-日期.tx
系统 2019-09-27 17:38:41 1994
本文以实例形式展示了Python算法中栈(stack)的实现,对于学习数据结构域算法有一定的参考借鉴价值。具体内容如下:1.栈stack通常的操作:Stack()建立一个空的栈对象push()把一个元素添加到栈的最顶层pop()删除栈最顶层的元素,并返回这个元素peek()返回最顶层的元素,并不删除它isEmpty()判断栈是否为空size()返回栈中元素的个数2.简单案例以及操作结果:StackOperationStackContentsReturnVa
系统 2019-09-27 17:38:32 1994
先来介绍一些pythonweb编程基础知识1.GET与POST区别1)POST是被设计用来向web服务器上放东西的,而GET是被设计用来从服务器取东西的,GET也能够向服务器传送较少的数据,而Get之所以也能传送数据,只是用来设计告诉服务器,你到底需要什么样的数据.POST的信息作为HTTP请求的内容,而GET是在HTTP头部传输的;2)POST与GET在HTTP中传送的方式不同,GET的参数是在HTTP的头部传送的,而Post的数据则是在HTTP请求的内
系统 2019-09-27 17:38:29 1994
在Python中要连接数据库,首先我们得先安装几个重要的东西,主要有:(1)Python-dev包(2)setuptools-0.6c11.tar.gz(3)MySQL-python-1.2.3.tar.gz下面分别来说说这三个主要的包的安装步骤:(1)Python-dev包直接yuminstallpython-devel(2)setuptools-0.6c11.tar.gz在网上下载后,先解压:tarzxfsetuptools-0.6c11.tar.gz
系统 2019-09-27 17:37:55 1994