Python
文章平均质量分 61
行走_
自动化测试,接口测试,性能测试Python, Jenkins
展开
-
离线安装python包,遇到is not a supported wheel on this platform
pip离线安装包原创 2022-10-14 23:11:27 · 3559 阅读 · 2 评论 -
使用Pytest框架,无法将日志记录到文件?
pytest日志记录原创 2022-08-05 16:10:34 · 1147 阅读 · 0 评论 -
python日志模块logging,基础知识和高级知识
logging基本知识logging是一个python内置的包,即文件夹logging下有一个__init__.py文件知识点主要包括:日志5个级别:logging.DEBUG, logging.INFO, logging.WARNING, logging.ERROR, logging.CRITICAL配置:logging.basicConfig(…)配置信息:日志输出文件filename, 日志格式format, 日期格式datefmt, 日志级别level)格式信息:%(asctime)s原创 2021-10-19 13:53:03 · 804 阅读 · 1 评论 -
python装饰器(decorator)
初学者如何理解装饰器刚开始学习python,看到装饰器就头大,看了解释也是懵懵懂懂,如何更好理解装饰器,并应用它呢?函数装饰器,就是给函数增加额外功能。举例:如果我们想知道一个函数func运行耗时,可以这么写:import timestart = time.time()res = func(*args, **kwargs)elapse = time.time() - startprint('函数运行耗时:%s' % elapse)而如果使用装饰器,就可以把这些都包装在一块,使用的时候@原创 2021-10-19 10:38:55 · 384 阅读 · 0 评论 -
python--configparser用于管理.ini的配置文件
一个python项目中,为了减少代码耦合,往往会把一些常量写入到配置文件,这样修改一些内容,就直接改配置文件即可,无需把所有相关的代码都去做更改,而.ini文件是类型window ini的文件,也可以用于python中,python提供了configparser模块来处理.ini配置文件。写入文件example.ini 文件内容[DEFAULT]ServerAliveInterval = ...原创 2020-04-12 11:38:27 · 251 阅读 · 0 评论 -
python操作redis(单机、集群、哨兵)
安装单机和哨兵,使用的是redis模块,所以下载redis即可,使用pip或者pip3命令来安装。pip3 install redis集群需要用到rediscluster模块,采用以下命令安装redis-py-cluster即可,最好指定版本pip3 install redis-py-cluster=1.3.6redis单机连接import redisconn = redis...原创 2020-03-07 15:26:10 · 5230 阅读 · 2 评论 -
python时间time格式化、时间戳
GMT:格林尼治时间,是世界时和地球经线的起点。UTC:通用协调时,一般可以当成GMT一样的使用时间戳:当前的时间到1970年1月1日 8:00的秒数,即这个起点为0,当前那个起点所经过的秒数,就是时间戳python获取时间戳time.time()import timet = time.time()print("时间戳:", t) #单位为秒,后边最多有7位小数时间戳: 1583...原创 2020-03-01 14:40:07 · 27897 阅读 · 0 评论 -
Python中获取当前文件的路径、当前文件所在的目录、拼接路径、当前文件的父目录、文件是否存在
前言编写python脚本实现功能的工作中,我们常常遇到操作文件的位置问题,本文大概的列举了几种常用的方法,欢迎大家评论和补充。获取当前文件的路径os.path.abspath(__ file __)import os# 可以用__file__获取当前文件的全路径current_file_path = os.path.abspath(__file__)print(current_fil...原创 2019-11-16 17:00:54 · 886 阅读 · 0 评论 -
python 生成器generator和迭代器Iterator
迭代 Iteration使用for循环来遍历list或者tuple,这种遍历就是迭代,遍历的list或者tuple称为可迭代对象Iterable列表生成式列表中,直接写表达式,生成相对应的列表>>> [ x + 1 for x in range(10)][1, 2, 3, 4, 5, 6, 7, 8, 9, 10]生成器 Generator生成器用括号,是可迭代...原创 2019-09-03 15:21:21 · 205 阅读 · 1 评论 -
python tuple元组
定义有序列表,用括号()和逗号, 来放置元素,和列表list类似,可以通过t[0]的索引方式来查看元素。与列表的区别,在于无法修改元组中的内容。没有删除、没有添加、没有更改元素的功能应用:格式化中,可以用到元组不想让别人修改数据,可以使用元组,尤其是API中,有些对象不想让别人修改,可以使用元组...原创 2019-09-03 12:18:38 · 103 阅读 · 0 评论 -
python格式化
格式化使用%s, %f, %d, %x来格式化字符串、浮点数、整数、十六进制整数用法:>>> a = "My name is %s, I am %d years old. And the answer of Pi is %.2f" % ("Jason", 16, 3.1415)>>> print(a)My name is Jason, I am 16...原创 2019-09-03 11:05:20 · 81 阅读 · 0 评论 -
python字符编码ASCII, Unicode, UTF-8
bit, byte我们先理解下比特bit,字节byte的概念。比特bit是表示信息的最小单位,是二进制中位,也就是0或者1。字节byte是计算机中用于计量存储容量的计量单位,1字节等于8位,也就是1 byte = 8 bit,所以可以表示00000000 ~ 11111111,转化为十进制,1个字节可以表示0~255的整数ASCIIASCII编码,采用的是1个字节来表示,所以其最多也就是25...原创 2019-09-03 09:39:49 · 1099 阅读 · 0 评论 -
python爬取视频--下载2019巴菲特股东大会直播视频
项目背景今天一个朋友想下载东方财富网上的2019巴菲特股东大会直播视频,我觉得还挺有趣,之前没有爬取过视频,所以研究了下,用python实现了爬取这个视频。其实,以现在的带宽网速及wifi普及,我们已经很少去下载视频了,很多视频,都是直接在线观看,但偶尔也有下载的需求,比如下载课程视频,或者下载一些视频后,剪辑合成一些视频,或者下载一些你觉得比较重要有帮助的视频,就像这个例子一样,巴菲特的...原创 2019-08-15 17:13:11 · 781 阅读 · 0 评论 -
python正则表达式模块re--split, sub, findall, finditer(3)
re.split(pattern, string)就是用正则表达式进行分割我们正常分割字符串,也是用split(),传入分割的参数即可但分割参数都是固定的,比如空格,或者- ,或者逗号等而re.split(pattern, string)完全可以传入正则表达式来分割比如\W+表示所有的非字母数字下划线的字符串作为分隔符,最后留下来的就是字母数字下划线分割后的列表。如果pattern加...原创 2019-09-04 18:07:33 · 247 阅读 · 0 评论 -
python--deque的应用
设计排序系统,使得用户可以看到自己在队伍中的变化代码# -*- coding:utf-8 -*-from collections import dequeclass User: def __init__(self, id, name): self.id = id self.name = name self.seq = ...原创 2019-07-28 21:55:19 · 230 阅读 · 0 评论 -
python切片
python切片python的切片是对列表的操作,我以前总是记不住各种类型,比如逆序,比如隔一个去一个,取所有,取倒数10个等等。现在发现,其实就是没有对列表切片的基本概念没理解,理解了就不用去记了。我们来看看列表切片的构成:首先切片是由中括号[ ]括起来的由起始索引start,结束索引end,和步长step三部分构成中间有2个冒号 :来隔开。第一个冒号隔开的是起始结尾索引,第二个冒...原创 2019-09-03 16:29:06 · 228 阅读 · 0 评论 -
python函数的参数
位置参数 (Required arguments)python的函数中,可以不设定参数,从而无参数直接调用函数。如果传入参数,常用的参数就是位置参数。比如:def get_name(data): return data["name"]位置参数经常用,也很简单,不多说。默认参数 (Default arguments)默认参数也很简单,就是多了个=号,设定一个默认值,如果需要更改,可以直...原创 2019-09-04 12:29:41 · 205 阅读 · 0 评论 -
python正则表达式模块re(1)
re模块通过pycharm来查看re模块的一些方法,前五个是比较常用的方法,需要重点来学习:searchmatchcompilefindallsubsubntemplateescapefinditerfullmatchpurgesplit主要参数的含义:pattern 正则表达式string 匹配的原始字符串flags 主要是声明一些匹配属性,比如忽略大小...原创 2019-09-04 13:15:06 · 292 阅读 · 0 评论 -
python正则表达式模块re--compile,match,search(2)
re.compile(pattern, flags)将正则表达式pattern编译成pattern对象,并返回该对象,可以调用match, search等方法来匹配各种字符串。直接用pattern不是更方便吗,我认为,使用compile的方式,可以加上flags,比如忽略大小写。感觉有点鸡肋就是了,其他的match, search等等都可以实现flags功能优点:经常使用的正则表达式编译...原创 2019-09-04 15:27:56 · 267 阅读 · 0 评论 -
Django学习记录1
命令创建项目python startproject MyBlog创建模板项目下,创建templates文件夹修改settinig.py创建模型目录先切换到创建好的项目下(含manage.py文件那一层)python manage.py startapp myblog_model用命令行打开mysql,给这个web项目,新建一个数据库create database mybl...原创 2019-09-14 12:35:16 · 128 阅读 · 0 评论 -
python——json,dict之间的转换load,dump, loads, dumps
json模块JSON的介绍:JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。JSON是一个标记符的序列。这套标记符包含六个构造字符、字符串、数字和三个字面名。六个构造字符:[ 左方括号,{ 左大括号, ] 右方括号, } 右大括号,: 冒号, , 逗号三个字面名:false、null、true值:对象、数组、数字、字符串...原创 2019-09-19 00:22:15 · 632 阅读 · 0 评论 -
python--Function Annotation 函数变量与返回值的注释
有时我们查看某个模块的源码时,会看到一些函数出现如下情况:def foo(a: 'x', b: 5 + 6, c: list) -> max(2, 9): ...我很不理解这参数后边的冒号,以及后边的箭头都是什么意思,查看了PEP 3107 – Function Annotations才知道这是函数注释。总结下几个特点:函数中的变量注释,就用冒号加上注释内容即可,如fo...原创 2019-09-28 09:46:20 · 1657 阅读 · 0 评论 -
python链表——两个单链表的数之和
输入:3->4->5->6->7->99->8->2->6->5输出:2->3->8->2->3->0->1思路:1. 对链表直接相加操作2. 引入外部链表resultList用来存放相加后的结果,tmp用来表示对应节点值相加后的个位数,c表示进位(相加后的十位数),sums...原创 2019-07-15 18:29:51 · 541 阅读 · 0 评论 -
python栈——用两个栈实现队列
用栈结构来实现队列的入队和出队思路:1. A栈用来装入队的元素2. B栈用来装出队的元素,如果B不为空,直接弹出即可实现出队,如果B为空,则把A中的元素弹出,压入到B栈代码:class Stack: def __init__(self): self.stack = [] self.top = -1 def is_empty(s...原创 2019-07-28 15:37:44 · 223 阅读 · 0 评论 -
python栈——Stack的入栈序列判断可能的出栈序列
输入:data1 = "12345", data2 = "32541"输出:True思路:1. 把data1序列依次入栈,直到栈顶元素等于data2序列的第一个元素,然后栈顶元素出栈,data2序列移动到第二个元素2. 如果栈顶元素依然等于data2的第二个元素,则继续出栈并data2移动到下一个元素,否则对data1移动到下一个元素入栈3、最终,如果栈为空,且对data1和d...原创 2019-07-28 14:18:46 · 1670 阅读 · 0 评论 -
python链表——判断链表是否有环
输入:1->2->3->4->5->6->7->3(3为链表中的第三个节点)输出:True思路:快慢法来求解,slow走一步,fast走2步,从head出发,如果带环的话,必定相遇。代码# 判断链表是否有环def is_Loop(head): if head is None or head.next is None: ...原创 2019-07-16 16:05:49 · 1047 阅读 · 2 评论 -
python链表——旋转链表
输入:1->2->3->4->5->6->7,k=3输出:5->6->7->1->2->3->4思路:1. k为倒数第3个节点,可以先找到倒数k+1个节点2. 从k+1处断开,头尾重新相接即可实现旋转3. 找到倒数k+1节点,可参照(找到链表的倒数第k个节点)4. 引入两个外部操作指针cur1, cur...原创 2019-07-16 12:13:28 · 463 阅读 · 0 评论 -
python链表——找到链表的倒数第k个节点
输入:1->2->3->4->5->6->7, k=3输出:节点5思路:方法1:两次顺序遍历,第一次求得链表长度size,第二次遍历到size-k的位置,cur.next就是对应的节点方法2:引入两个相隔k个长度的外部变量cur1, cur2,当cur2.next为None时,cur1正好是倒数第k个节点代码:def get_data(...原创 2019-07-16 11:43:01 · 481 阅读 · 0 评论 -
python链表——节点Node与单链表LinkedList构造
单链表的节点,包含值域data与指针next,所以其定义也很简单:class Node: def __init__(self, data): self.data = data self.next = None单链表,包含了头节点head,链表长度size,方法包括了增加add, 删除delete, 插入insert, 打印遍历链表print_lin...原创 2019-07-16 10:27:57 · 1958 阅读 · 0 评论 -
python链表——链表重新排序
输入:1->2->3->4->5->6->7输出:1->7->2->6->3->5->4或者输入:1->2->3->4->5->6输出:1->6->2->5->3->4思路:1. 将1->2->3->4->5->6...原创 2019-07-15 23:29:17 · 991 阅读 · 0 评论 -
python链表——删除链表重复项
输入:1->2->1->4->4->5输出:1->2->4->5顺序删除思路:1. 采用双重while循环来遍历,遇到重复的就删除2. 删除操作是用前一个节点pre的指针指向当前节点cur的下一个节点, 即pre.next = cur.next3. 我们引入三个操作节点的指针outCur, innerCur, innerPre...原创 2019-07-15 16:34:27 · 978 阅读 · 0 评论 -
python链表——实现链表逆序的三种方式:就地逆序,递归,插入法
输入:1 -> 2 -> 3 ->4输出:4 -> 3 -> 2 -> 11、就地逆序思路:1、引入外部操作节点的变量pre, cur, nex,分别代表前一个节点、当前节点、下一个节点。2、单链表的每个节点只有一个指针,故对每个节点的指针进行2次操作,第1次指针操作,将当前节点指针cur.next值临时保存到nex,即nex = cur.next, ...原创 2019-07-15 00:05:07 · 2172 阅读 · 0 评论 -
PyQt5学习记录(1)——ui转换为py脚本
文章只用来记录自己学习的过程,方便自己以后查阅1、在QtDesigner中,通过拖拽方式,设计好你的UI界面2、通过pyuic5可以将ui图形界面转换成py脚本3、产生Ui_MainWindow类,这个脚本执行后,并不能产生我们设计的UI界面, 需要加入以下代码,才可以产生UI界面# 开头加上导入sysimport sysif __name__ == "__main__": ...原创 2019-05-13 15:40:06 · 4243 阅读 · 1 评论 -
Python如何操作office实现自动化?---win32com.client的运用
应用背景工作中,由于需要出定期的报告,需要用到office,主要是要用到excel原创 2018-08-31 14:03:13 · 29987 阅读 · 10 评论 -
爬取18年二季度天天基金网基金持仓信息-python
爬取的目的通过爬取基金持仓信息,我们可以了解基金的资金流向,说白了,就是知道大型基金公司都买了什么股票,买了多少。也可以跟踪一些知名的基金,看看他们都买了什么股票,从而跟买或者不买,估值便宜的股票,又有很多基金入场,很可能这家公司大家都非常看好,未来业绩很可能增长,可能是一次比较好的投资机会;而有些股票,估值已经很高了,里边还有很多的基金公司,这就需要注意了,很可能基本面发生一点点恶化,或者达...原创 2018-08-23 22:12:16 · 8247 阅读 · 16 评论 -
python链表——链表相连2个节点翻转
输入:1->2->3->4->5->6输出:2->1->4>3->6->5或者输入:1->2->3->4->5输出:2->1->4>3->5思路:1. 引入3个外部变量,pre, cur, nex,如图所示,进行每个节点的指针操作2. 进行循环时,pre...原创 2019-07-16 22:38:17 · 297 阅读 · 0 评论 -
python链表——链表相连3个节点翻转
输入:1->2->3->4->5->6->7->8输出:3->2->1->6->5->4->7->8代码def reverse_3(head): if head is None or head.next is None or head.next.next is None: ...原创 2019-07-17 00:15:18 · 244 阅读 · 0 评论 -
python栈——Stack的最小元素
获取栈中最小元素思路:1. 构造新的栈类,构造器中,包含两个栈,其中一个用来存元素序列,另外一个用来存最小的值2. 写出最下值得函数代码class Stack: def __init__(self): self.stack = [] self.top = -1 def push(self, value): se...原创 2019-07-28 14:45:51 · 380 阅读 · 0 评论 -
python栈——Stack的翻转
输入:栈1 2 3 4 5,其中1为栈顶输出:栈5 4 3 2 1,其中5位栈顶思路:最简单的方式,就是设定一个额外的队,先出栈入队,然后出队入栈代码class Stack: def __init__(self): self.stack = [] self.top = -1 def is_empty(self): ...原创 2019-07-28 11:47:05 · 523 阅读 · 0 评论 -
python栈——Queue的实现
队列的数据结构:入队、出队、查看队尾、查看队头、队长、队空队的例子:生活中排队结账、排队登机等特点:先进先出、后进后出以下的代码,只是比较简单的实现队的常用形式,队还可以是循环队,还可以设置队的最大长度,队满等方法属性。代码:class Queue: def __init__(self): self.queue = [] self.fr...原创 2019-07-28 11:41:44 · 183 阅读 · 0 评论