python
sunny_happy08
持之以恒是一种伟大的能力
展开
-
python获取当前路径及父结节,祖先节点遇到的坑
python经常会遇到切换路径的操作。例如文件结构如下在写程序时遇到test.test_data.py里调用utils.data_process.data.py的open_file()读取data.txt的目录,跟直接在utils.data_process.data.py运行调用open_file()读取data.txt的目录,运行结果是不同的。个人猜想:test调用时是以test所在目录...原创 2018-08-28 18:24:33 · 1760 阅读 · 0 评论 -
os.path常用函数
>>> os.path.abspath('C:\\users\\sunny\\test') 'C:\\users\\sunny\\test'>>> os.path.join('C:\\users\\sunny\\test','test.txt') ----要特别注意文件名前不需要加斜杠或反斜杠(windows和linux不同,测试发现,windows是可...原创 2018-08-28 18:45:13 · 203 阅读 · 0 评论 -
python获取当前目录路径和上级路径常用方法
在使用python的时候总会遇到路径切换的使用情况,如想从文件夹test下的test.py调用data文件夹下的data.txt文件:.└── folder ├── data │ └── data.txt └── test └── test.py一种方法可以在data文件下加入__init__.py 然后在test.py 中import da...转载 2018-08-28 18:47:03 · 2818 阅读 · 0 评论 -
python继承和重写init方法--实例
一、 子类不重写__init__ , 实例化子类时,会自动调用父类定义的__init__二、 子类重写了__init__时,实例化子类,就不会调用父类已经定义的__init__三、为了能使用或扩展父类的行为,要显示调用父类的__init__方法,有以下两种调用方式。1. 调用未绑定的父类构造方法class FooParent(object): #父类 def __init...原创 2018-09-10 14:08:44 · 12945 阅读 · 2 评论 -
python 语法之 装饰器decorator
装饰器 decorator或者称为包装器,是对函数的一种包装。它能使函数的功能得到扩充,而同时不用修改函数本身的代码。它能够增加函数执行前、执行后的行为,而不需对调用函数的代码做任何改变。下面用一个简单的例子介绍装饰器:1 # 函数hello,输出 hello + name 的字符串 2 def hello(name):3 return 'hello ' + na...转载 2018-09-07 10:59:26 · 119 阅读 · 0 评论 -
Pytest高级进阶之Fixture
一. fixture介绍fixture是pytest的一个闪光点,pytest要精通怎么能不学习fixture呢?跟着我一起深入学习fixture吧。其实unittest和nose都支持fixture,但是pytest做得更炫。 fixture是pytest特有的功能,它用pytest.fixture标识,定义在函数前面。在你编写测试函数的时候,你可以将此函数名称做为传入参数,pytest将会...转载 2018-09-07 11:28:09 · 586 阅读 · 0 评论 -
python按行读取文件,去掉每行的换行符"\n"
for line in file.readlines(): line=line.strip('\n')strip函数原型声明:s为字符串,rm为要删除的字符序列. 只能删除开头或是结尾的字符或是字符串。不能删除中间的字符或是字符串。s.strip(rm) 删除s字符串中开头、结尾处,位于 rm删除序列的字符s.lstrip(rm) 删除s字符串中开...原创 2018-09-20 11:43:29 · 13753 阅读 · 0 评论 -
python用requests请求,报SSL:CERTIFICATE_VERIFY_FAILED错误
requests模块之前一直正常的,某一天开始对https的请求都抛错误了:requests.exceptions.SSLError: [Errno 1] _ssl.c:504: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed 起初,以为是代理不稳定,重启代理无效,...原创 2018-10-18 14:39:24 · 8913 阅读 · 0 评论 -
Python2与Python3的字符编码与解码
转载于:https://www.jianshu.com/p/19c74e76ee0a编码与解码编码(encode):在Unicode中,每一个字符都有一个唯一的数字表示,那么将Unicode字符串转换为特定字符编码(ASCII、UTF-8、GBK)对应的字节串的过程和规则就是编码。解码(decode):将特定字符编码(ASCII、UTF-8、GBK)的字节串转换为对应的Unicode字...转载 2018-10-16 17:28:00 · 220 阅读 · 0 评论 -
python zip()函数
描述zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。zip 方法在 Python 2 和 Python 3 中的不同:在 Python 3.x 中为了减少内存,zip() 返回的是一个对象。如需展示列表,需手动 lis...原创 2018-10-16 17:51:21 · 176 阅读 · 0 评论 -
pip下载python库太慢怎么办?
我要说的就是:pip 换源Python 的一大优点就是丰富的类库,所以我们经常会用 pip 来安装各种库(参见 如何安装 Python 的第三方模块)。然而时不时会遇上网络不好,下载个包要花很久,甚至超时无法下载的情况。其实你只要加个参数 -i,可能就会让下载速度上升 10 倍,比如:pip install django -i https://pypi.tuna.tsin...转载 2018-10-17 17:02:38 · 7666 阅读 · 5 评论 -
request处理cookie的两种方法
有些http请求后台接口时,需要加headers,不加会报错。有些是不需要的。这个要看后台是怎么校验的。可以先发一个不带hearders的请求测试下,能得到预期的结果就不需要加headers。 python提供了一个非常强大的第三方库requests处理http协议。今天讲的重点就是如何使用requests处理cookie。cookie使用场景:访问需要登录才可见的页...原创 2018-10-29 18:00:00 · 46147 阅读 · 0 评论 -
requests.post()方法中的data参数和json参数
json和dictpython中的dict类型要转换为json格式的数据需要用到json库:import json<json> = json.dumps(<dict>)<dict> = json.loads(<json>)需要注意的是python中并没有json类型这一说法,通过json.dumps(<dict>)转...原创 2018-10-27 16:32:02 · 38838 阅读 · 4 评论 -
pytest执行规则
pytest执行规则文件名为test_*.py 或*_test.py 以Test开头的类 以test_开头的函数 所有package必须要有__init__.py文件(这个不加也可以,若报错可以作为排错的一个途径) 这个规则其实也挺有意思的,并不像表面看上去那么简单。试验工具:pycharm,pytest 场景一:右键单击目录选择执行pytest。非test_*...原创 2018-11-01 16:18:38 · 3222 阅读 · 0 评论 -
pytest参数化
pytest有三种传参方式,我主要用到前两种pytest的参数化方式 pytest.fixture()方式进行参数化,fixture装饰的函数可以作为参数传入其他函数 pytest.mark.parametrize()方式进行参数化 conftest.py 文件中存放参数化函数,可作用于模块内的所有测试用例 本章主要讲第二种方式:@pytest.mark.para...原创 2018-11-01 16:30:23 · 7017 阅读 · 0 评论 -
@pytest.mark.parametrize实例讲解
最近因工作需要用到@pytest.mark.parametrize()传多个参数,实现执行不同数据。 我的需求数据源是excel,excel的每一行都是一条测试用例,已实现读取测试用例和处理测试用例的逻辑。接下来就是将这些测试数据通过pytest.mark.parametrize()传入测试函数,循环执行这些测试数据,每次执行时都需要assert用例结果, 以便将测试结...原创 2018-11-02 17:52:28 · 30114 阅读 · 4 评论 -
python2 print备忘
总结一下print输出字符串的几种不同方式。第一种:逗号分隔变量,第二种:加号连接变量输出,第三种:%格式化输出(%s指字符串,%d指十进制整数,%f指浮点数,%x或%X指十六进制整数)w1 = 'hi'w2 = 'morning'print(w1,w2)print w1,w2print (w1+w2)print w1+w2print('%s' %w1)...原创 2018-08-28 11:17:28 · 4083 阅读 · 0 评论 -
判断python字典中key是否存在的两种方法
第一种方法:使用自带函数实现。在python的字典的属性方法里面有一个has_key()方法,这个方法使用起来非常简单。例: 1 2 3 4 5 #生成一个字典 d = {'name':{},'age':{},'sex':{}} #打印返回值 print d.has_key('name') #结果返...原创 2018-08-17 10:27:33 · 6676 阅读 · 0 评论 -
python字典遍历的几种方式
1、遍历key>>> a{'a': '1', 'b': '2', 'c': '3'}>>> for key in a: print(key+':'+a[key]) a:1b:2c:3>>> for key in a.keys(): print(key+':'+a[key]) a:1b:2c:3在使用上,for key i...转载 2018-05-17 18:27:10 · 9602 阅读 · 1 评论 -
服务平台回归测试UI自动化测试实践
需求分析:服务平台每次上线都需要进行回归测试,需要测试的模块多,业务稳定,重复劳动多。非常符合实现自动化测试。实现目标:用自动化的方式去模拟测试人员的操作(实现UI自动化), 在每周服务平台上线前执行,并将测试结果生成测试报告,以邮件的形式发给相关人员。如何实现:1. 框架选择:Robotframework +selenium +git+jenkins2. 语言选择:python,接近自然语言,入...原创 2018-05-25 16:07:35 · 1075 阅读 · 1 评论 -
import 和 from … import 模块的变量、方法引用差异
模块 support.py:def print_func( par ): print "Hello : ", par return使用 import 引入并调用 support 模块的正确方法:#!/usr/bin/python# -*- coding: UTF-8 -*- # 导入模块import support # 现在可以调用模块里包含的函数了support.pri...转载 2018-06-04 11:36:34 · 3134 阅读 · 0 评论 -
从文件读取json数据拼接成待签名字符串,用sha256进行签名,得到签名字符串
如题,贴code# -*- coding: utf-8 -*-# version python 3.5import hashlibimport jsonimport sysdef loadMessage(file): f = open(file) #设置以utf-8解码模式读取文件,encoding参数必须设置,否则默认以gbk模式读取文件,当文件中包含中文时,会报错 ...原创 2018-06-01 17:26:22 · 3925 阅读 · 2 评论 -
列表和字符串互相转换的应用
列表是元素的集合,字符串是把元素的集合当做一个整体,在实际中,经常需要将一个列表转换成字符串即将列表当做整体处理,或者将字符串以某种分隔符如空格等分离出字符串的元素进行处理,转换成列表是最方便的形式。 (1)列表转换成字符串:join 列表里的字符按字符串形式打印 join:连接字符串数组。将字符串、元组、列表中的元素以...原创 2018-07-24 14:58:10 · 7204 阅读 · 0 评论 -
在pycharm使用pylint检查python代码规范
1. 安装pylint pip install pylint2. 配置pylint pycharm --settings--Tools--External Tools,新建 - program: python安装目录下scripts/pylint.exe - Parameters: --output-format=parseable --disable=R ...原创 2018-08-09 18:02:13 · 3037 阅读 · 1 评论 -
python的json模块,dumps,loads,dump,load方法介绍
#--*--conding:utf-8 --*--#jshon这个模块就是做序列化处理的,主要用到json模块的四种方法#1、dumps#2、loads#3、dump#4、load#先介绍dumps方法#通过jshon的dumps的模块可以把特定的对象序列化处理为字符串# import json# l1 = [1,2,3,454]# d1 = {'k1':'...原创 2018-08-09 18:15:03 · 172 阅读 · 0 评论 -
pytest安装&实例
Pytest介绍非常容易上手,入门简单,文档丰富,文档中有很多实例可以参考 能够支持简单的单元测试和复杂的功能测试 支持参数化 执行测试过程中可以将某些测试跳过,或者对某些预期失败的case标记成失败 支持重复执行失败的case 支持运行由nose, unittest编写的测试case 具有很多第三方插件,并且可以自定义扩展 方便的和持续集成工具集成安装pytest1.安装...转载 2018-08-06 10:56:06 · 1254 阅读 · 0 评论 -
ConfigParser - 读写配置文件
配置文件的格式a) 配置文件中包含一个或多个 section, 每个 section 有自己的 option;b) section 用 [sect_name] 表示,每个option是一个键值对,使用分隔符 = 或 : 隔开;c) 在 option 分隔符两端的空格会被忽略掉d) 配置文件使用 # 和 ; 注释一个简单的配置文件样例 myapp.conf按 Ctrl+C 复...转载 2018-08-06 18:31:48 · 420 阅读 · 0 评论 -
python使用第三方库request访问https报错
摘要:使用pip安装request插件,访问https时,有时会报出SNIMissingWarning和InsecurePlatformWarning警告报错详情:SNIMissingWarning: An HTTPS request has been made, but the SNI (Subject Name Indication) extension to TLS is not ava...原创 2018-08-07 17:51:38 · 1137 阅读 · 0 评论 -
Python 中函数重载和覆盖理论
重载(overload)和覆盖(override),在C++,Java,C#等静态类型语言类型语言中,这两个概念同时存在。前者是为了让同一个函数名(方法名)匹配不同的参数(个数不同,类型不同);后者是为了实现多态,在相同名称的函数(方法)和参数,在不同的类中(父类,子类),有不同的实现。 Python是动态类型语言,不能简单地说它支持或者不支持重载,我的思考结果是,重载仍然存在,只是以不同...转载 2018-08-16 16:55:36 · 718 阅读 · 0 评论 -
Python默认参数的坑
python 空用None默认参数的坑定义一个函数,传入一个list,添加一个end再返回 1 2 3 def add_end(L=[]): L.append('END') return L 正常调用时,结果似乎不错 1 print add_end([1,2,3...原创 2018-08-16 17:04:15 · 431 阅读 · 1 评论 -
Python 函数(默认参数)
默认参数设置默认参数时,有两点需要注意:一是必选参数在前,默认参数在后,否则python的解释器会报错二是当函数有多个参数时,把变化大的参数放前面,变化小的放后面,变化小的参数就可以作为默认参数 1 2 3 4 5 6 7 8 9 10 def power(x,n=2): ...转载 2018-08-16 17:20:55 · 953 阅读 · 0 评论 -
Python 函数 (关键字参数)
关键字参数可变参数允许你传入0个或者任意个参数,这些可变参数在函数调用时会自动组装成一个tuple,而关键字参数允许你传入0个或者任意个含参数名的参数,这些参数在函数内部自动组装成为一个dict 1 2 def person(name,age,**kw): print('name:',name,'age:',age,'other:',k...转载 2018-08-16 17:59:05 · 167 阅读 · 0 评论 -
Python 函数(可变参数)
在python函数中,可以定义可变参数,顾名思义,可变参数就是,传入的参数是可变的例如,给定一组数字a,b,c... 请计算a2 + b2 + c2 + …… 要定义出这个函数,我们必须确定输入的参数。由于参数个数不确定,我们首先想到可以把a,b,c....作为一个list或者tuple传进来,这样,函数可以定义如下: 1 2 3 4 5 ...转载 2018-08-16 18:00:56 · 5059 阅读 · 0 评论 -
Python 函数(参数组合)
Python 函数(参数组合)在Python中定义函数,可以用必选参数、默认参数、可变参数和关键字参数,这4种参数都可以一起使用,或者只用其中某些,但是请注意,参数定义的顺序必须是:必选参数、默认参数、可变参数和关键字参数定义一个函数,包含上述4种参数: 1 2 def func(a,b,c=0,*args,**kw): print...转载 2018-08-16 18:02:42 · 381 阅读 · 0 评论 -
字符串的split用法
说明:Python中没有字符类型的说法,只有字符串,这里所说的字符就是只包含一个字符的字符串!!!split返回的是一个列表。 首先列出一种常用的情况,不带参数,默认是空白字符。如下:结果为:1.按某一个字符分割,如‘.’ 1 2 3 4 str = ('www.google.com') print s...原创 2018-11-12 14:26:45 · 9496 阅读 · 0 评论