编程技术 - 军军小站|张军博客
Python

Python Threading 线程/互斥锁/死锁/GIL锁

导入线程包importthreading准备函数线程,传参数t1=threading.Thread(target=func,args=(args,))类继承线程,创建线程对象classMyThread(threading.Thread)defrun(self):passif__name__=="__main__":t=MyThread()t.start()线程共享全面变量,但在共享全局变量时会出现数据错误问题使用threading模块中的Lock类,添加互

系统 2019-09-27 17:47:40 1818

Python

Python:logging 的巧妙设计

引言logging的基本用法网上很多,这里就不介绍了。在引入正文之前,先来看一个需求:假设需要将某功能封装成类库供他人使用,如何处理类库中的日志?数年前在一个C#开发的项目中,我用了这样的方法:定义一个logging基类,所有需要用到日志的类都继承这个基类,这个基类中定义一个LogHandler事件,该事件用于实现具体的记录日志动作,同时可以通过将类A的LogHandler委托挂到类B的LogHandler上,实现将两个类的日志信息添加到一起。自从看了py

系统 2019-09-27 17:47:37 1818

Python

Python使用psutil模块,做你的电脑管家

电脑管家也许大家都有这样的感觉,优化完美的电脑系统,你把电脑借给一个电脑小白使用上几天,等你拿回来的时候会发现,开机各种慢,乱七八糟的软件装了一大堆。那么我们如何使用Python来获取电脑的相关数据呢?不妨了解下psutil模块!psutil学习psutil是一个跨平台库(http://pythonhosted.org/psutil/)能够轻松实现获取系统运行的进程和系统利用率(包括CPU、内存、磁盘、网络等)信息。它主要用来做系统监控,性能分析,进程管理

系统 2019-09-27 17:47:33 1818

Python

使用python编写android截屏脚本双击运行即可

测试的过程中经常需要截取屏幕,通常的做法是使用手机自带的截屏功能,然后将截屏文件复制出来,这种方法的优点是不需要连接数据线就可截屏,缺点则是生成的截屏文件命名是随机命名的,复制出来也比较麻烦。另一种方法是使用PC端的手机助手类软件。这里使用python编写一个截屏的脚本,双击运行脚本就OK,截屏成功后会将截屏文件已当前时间命名,并保存在存放脚本的当前路径的screenshot文件夹下:#!/usr/bin/envpythonimportosimportti

系统 2019-09-27 17:47:18 1818

Python

Python标准异常和异常处理详解

python提供了两个非常重要的功能来处理python程序在运行中出现的异常和错误。你可以使用该功能来调试python程序。1.异常处理:本站Python教程会具体介绍。2.断言(Assertions):本站Python教程会具体介绍。python标准异常异常名称描述BaseException所有异常的基类SystemExit解释器请求退出KeyboardInterrupt用户中断执行(通常是输入^C)Exception常规错误的基类StopIterati

系统 2019-09-27 17:47:18 1818

Python

在Python中操作字符串之replace()方法的使用

replace()方法返回当前old换成new,可选择的替代限制到最大数量的字符串的副本。语法以下是replace()方法的语法:str.replace(old,new[,max])参数old--这是要进行更换的旧子串。new--这是新的子串,将取代旧的子字符串。max--如果这个可选参数max值给出,仅第一计数出现被替换。返回值此方法返回字符串的拷贝与旧子串出现的所有被新的所取代。如果可选参数最大值给定,只有第一个计数发生替换。例子下面的示例演示了rep

系统 2019-09-27 17:47:10 1818

Python

python网络爬虫学习笔记之三 Selenium入门

抓取动态的网页内容主要有两种办法,一种是通过开发者工具找到动态内容的接口,然后分析接口的参数和返回值来爬取网站的数据。另外一种是通过模拟浏览器来抓取数据。python的Selenium库就可以通过代码来模拟浏览器抓取数据。一、概述运行Selenium需要依赖于Python的selenium库,以及浏览器对应驱动器(WebDriver)。安装selenium库pipinstallselenium项目地址:https://pypi.org/project/se

系统 2019-09-27 17:47:10 1818

Python

python协程gevent案例 爬取斗鱼图片过程解析

分析分析网站寻找需要的网址用谷歌浏览器摁F12打开开发者工具,然后打开斗鱼颜值分类的页面,如图:在里面的请求中,最后发现它是以ajax加载的数据,数据格式为json,如图:圈住的部分是我们需要的数据,然后复制它的网址为https://www.douyu.com/gapi/rknc/directory/yzRec/1,出于学习目的只爬取第一页(减少服务器压力)。然后把网址放到浏览器中测试是否可以访问。如图:结果正常。分析json数据,提取图片链接最后分析发现

系统 2019-09-27 17:46:57 1818

Python

实例详解python函数的对象、函数嵌套、名称空间和作用域

函数的对象python中一切皆对象函数对象的四大功能引用deff1():print('fromf1')f1()#调用函数print(f1)print('*'*50)f=f1#将函数名f1赋值给ff()#f也可以调用函数print(f)fromf1**************************************************fromf1函数名相当于一个变量名,既能接收函数体返回的值,也能赋值。当做参数传给一个函数deff1():prin

系统 2019-09-27 17:46:53 1818

Python

Python 执行字符串表达式函数(eval exec execfile)

仔细研读后学习了三个函数:eval:计算字符串中的表达式exec:执行字符串中的语句execfile:用来执行一个文件需注意的是,exec是一个语句,而eval()和execfile()则是内建built-in函数。Python2.7.2(default,Jun122011,15:08:59)[MSCv.150032bit(Intel)]onwin32Type"help","copyright","credits"or"license"formoreinf

系统 2019-09-27 17:46:53 1818

Python

Python命名空间详解

通俗的来说,Python中所谓的命名空间可以理解为一个容器。在这个容器中可以装许多标识符。不同容器中的同名的标识符是不会相互冲突的。理解python的命名空间需要掌握三条规则:第一,赋值(包括显式赋值和隐式赋值)产生标识符,赋值的地点决定标识符所处的命名空间。第二,函数定义(包括def和lambda)产生新的命名空间。第三,python搜索一个标识符的顺序是"LEGB"。所谓的"LEGB"是python中四层命名空间的英文名字首字母的缩写。最里面的一层是L

系统 2019-09-27 17:46:43 1818

Python

【Python】Linux安装新版本Python步骤

一.安装依赖库yum-yinstallpython-developensslopenssl-develgccsqlitesqlite-develmysql-devellibxml2-devellibxslt-develtkintertk-devel#下载Pythonmkdir/tmp/pythoncd/tmp/pythonwgethttps://www.python.org/ftp/python/2.7.13/Python-2.7.13.tgz二.解压Py

系统 2019-09-27 17:46:40 1818

Python

python显示出对应字典的键名和该值

从下面字典中查找出值为数字的字符串,并显示出对应字典的键名和该值dct={'Name':['Alice','1456'],'Age':['aa','5aa','345']}#取出字典的值forvalue1indct.values():#遍历值列表forvalue2invalue1:#判断是否为数字的字符串ifvalue2.isdigit():value=value1key=[kfor(k,v)indct.items()ifv==value]print("键

系统 2019-09-27 17:46:31 1818

Python

【Python练习圣典】heapq高级应用

1.从集合中取出最大或最小N个元素importheapqnums=[1,8,2,23,7,-4,18,23,42,37,2]print(heapq.nlargest(3,nums))#输出[42,37,23]print(heapq.nsmallest(3,nums))#输出[-4,1,2]也支持其他参数支持更为复杂的数据结构portfolio=[{'name':'IBM','shares':100,'price':91.1},{'name':'AAPL',

系统 2019-09-27 17:46:30 1818

Python

自己使用总结Python程序代码片段

用于记录自己写的,或学习期间看到的不错的,小程序,持续更新......****************************************************************【例001】计算:1-2+3-4..+199-200值复制代码代码如下:#encoding=utf-8#计算1-2+3-4..+199-200值#1+3+5+7+...199#-2-4-6...-200sum1=0sum2=0foriinrange(1,200,

系统 2019-09-27 17:46:02 1818