
python
小桔帽
这个作者很懒,什么都没留下…
展开
-
python中的中文字符问题
使用python 2.6时发现脚本中有中文且处理中文时,有编码解码的问题,用以下方法解决:1、python脚本首行添加#-*- coding:utf-8 -*-若不添加,脚本中的中文字符一律识别不了(包括注释中有中文都不行)2、编写了个小爬虫,爬到的html文件中若有中文字符,需要对获得的html进行解码:html = response.read().dec原创 2017-02-08 10:14:01 · 1336 阅读 · 0 评论 -
python unittest框架的使用&解析
学习unittest时,掉进一个坑,在官网上未找到解释,google了很多大牛的文章,才绕过去。也因为如此,才知道很多人已经对unittest做了详细而又深入的说明,需要的时候拿来看就好,我这个小渣渣还要不要写呢~~~ 要写要写,自己写的东西以后翻看也一目了然。 ————————我是分割线———————– unittest也叫PyUnit,是Python版的Junit(Java),贴一个例子原创 2017-08-22 18:59:14 · 2032 阅读 · 0 评论 -
python 装饰器(实现dataprovider)
接触装饰器,是因为在使用unittest测试时,想要看起来更简洁的传递数据,看了下Java的TestNG有DataProvider这个东东,python里第三方库也有实现的。但还是满足不了自己的要求,基础的东西还是学一下更好。我的设想: 测试用例的数据都放在一个test_cases_data的dict中(test_case_name为key),通过dataprovider根据test_cas原创 2018-02-01 18:27:58 · 1234 阅读 · 0 评论 -
python 多个文件共享数据或变量
python的每个文件相当于一个module,每个module有自己的命名空间(也可以说是作用域),在多个文件中共享变量可以使用import来实现。 import有个缓存机制,即在某一次python解释器运行时,模块只导入一次、代码只执行一次,若有重复的导入操作,则会从缓存中直接读取其中的变量,举例如下:# config.pyimport timea = time.time()原创 2021-01-06 19:57:48 · 9746 阅读 · 3 评论 -
Python logging浅尝(将log同时输出到Console和日志文件)
先贴上logger/handler/formatter/filter的用处(来源见参考中链接): Loggers expose the interface that application code directly uses. Handlers send the log records (created by loggers) to the appropriate destination. ...原创 2018-03-07 14:16:34 · 23816 阅读 · 5 评论 -
python logging输入文件中文字符乱码
Python版本3.6 解决方法很简单,在定义Filehandler时指定encoding就好了import loggingfile_hanlder = logging.FileHandler(filename='example.log', encoding='utf-8')因为看python的logging.FileHandler()类的代码如下,就知道Filehanlder也支...原创 2018-03-15 11:21:53 · 19112 阅读 · 1 评论 -
Python 类变量(类名不加括号访问的变量)
起因: 下面一段代码没有达到预期# config.pyclass GlobalVar(): is_init = Falsedef set_init_status(is_init): GlobalVar().is_init = is_initdef get_init_status(): return GlobalVar().is_initif ...原创 2018-03-01 22:51:38 · 3493 阅读 · 0 评论 -
Python dictionary字典的复制方法
1. dict2 = dict1 #第一种你想到的复制方法>>> dict1 = {'a': 1, 'b':2, 'c':[1, 2]}>>> dict2 = dict1>>> dict1['a'] = 2>>> dict2{'a原创 2018-03-01 23:08:19 · 15770 阅读 · 3 评论 -
Python3 HtmlTestRunner兼容中文
在Python3环境下,引用HTMLTestRunner生成测试报告,report_title传了中文,结果生成的报告中文是乱码: 解决方法直接拖到文末港真,看到这个还挺崩溃的,因为我用的是Python3!! 调了一下代码,发现了问题,在HTMLTestRunner/result.py中有这样的代码: def generate_file(self, output, rep...原创 2018-02-24 18:38:01 · 1854 阅读 · 0 评论 -
python string.Template使用
string.Template,将一个string设置为模板,通过替换变量的方法,最终得到想要的string。1. 用法示例(改写 from python官方文档):>>> from string import Template>>> template_string = '$who likes $what'&a原创 2018-05-14 14:05:02 · 16644 阅读 · 0 评论 -
python3 requests 模拟登录状态的两种方式
模拟登录状态,即与cookie和session有关。 cookie是用户登录后,服务器返回给客户端的,客户端保存cookie后,可以方便的进行登录;session是服务端用以鉴定用户是否处于登录状态的一种机制(常见的是请求中加入sid)。我遇到的情况是: cookie的保存可以用使用某个请求的cookies方法来获得(也是通用的); sid是登录接口中接口返回的一个字段,可以使用json...原创 2018-06-05 17:44:57 · 11877 阅读 · 0 评论 -
python 多个*.py用例文件仅生成一个报告&报告添加截图(基于HtmlTestRunner)
使用python + unittest生成测试报告,目前网上最普遍的是两个开源方法:HTMLTestRunnerHtmlTestRunner其中第2个是基于第1个实现的;第1个已经不维护了,如果应用到py3,需要自己做一些修改,此外,样式并不好看( ╯□╰ )。第2个相对第1个,支持py3,而且样式也漂亮了一些,安装也方便了。但是在使用时遇到下面的问题:有两个测试用例文件:test_l...原创 2018-11-26 11:00:27 · 2108 阅读 · 0 评论 -
Python *arg **kwarg
函数定义时传*arg /**kwarg(收集参数)函数传入*argdef print_params(title, *arg): print title print arg测试一下:>>> print_params('params', 1, 2)params(1, 2)Explain:(1,2)是元组的形式;函数的位置参数为*arg,说明函数接受的是一原创 2017-08-11 12:38:21 · 1594 阅读 · 0 评论 -
argparse之在python脚本中赋值
场景:python脚本需接受命令行中的参数,在debug代码时,怎么做呢?import argparseparser = argparse.ArgumentParser()parser.add_argument('file_path', nargs='*', help='enter file path')# args = parser.parse_args()args = pars原创 2018-01-03 20:47:22 · 7008 阅读 · 1 评论 -
自定义python命令,你也可以(python命令行之argparser)
如何在命令行运行python脚本,并且运行时添加一些好用的参数ArgumentParser.add_argument(name or flags...[, action][, nargs][, const][, default][, type][, help][, dest])原创 2018-01-03 14:22:24 · 5276 阅读 · 0 评论 -
python通配符.
在写爬虫的时候,遇到一个小问题,跨html标签(也就是多行)的时候,正则匹配不出来:举例html:class="nav-logo">href="https://www.douban.com">豆瓣社区这个是我写的正则:reg = u'.*?.*?/div>'titleRe = re.compil原创 2017-02-08 10:40:06 · 13592 阅读 · 0 评论 -
pathon爬虫对象版
注意:类的方法声名时,必须加上self变量(不管方法中有没有用到,如下例中的方法getHtml())脚本如下:#-*- coding:utf-8 -*-#import urllibimport urllib2import reimport sysimport cookielibreload(sys)sys.setdefaultencoding("utf-8")clas原创 2017-02-08 15:03:36 · 713 阅读 · 0 评论 -
unittest Ran 0 tests in 0.000s
py脚本结构如下:#coding:utf-8from selenium import webdriverimport unittestimport timeimport sys reload(sys)sys.setdefaultencoding('utf8')class MyTest(uni原创 2017-07-03 17:35:05 · 8623 阅读 · 1 评论 -
unittest参数化parameterized
github:https://github.com/wolever/parameterizedimport unittestfrom nose_parameterized import parameterized, paramclass TestAdd(unittest.TestCase): @parameterized.expand([ param("11", 11),原创 2017-07-05 16:04:15 · 8174 阅读 · 0 评论 -
selenium元素定位不到--可能是iframe捣的乱
Python中使用iframe的语法如下:driver.switch_to.frame(driver.find_element_by_css_selector('#homeMainContent iframe'))切换后元素就可以定位到了,感谢党感谢人民~~ 稍后来填坑原创 2017-07-21 14:21:21 · 957 阅读 · 0 评论 -
python+selenium中的Implicit Waits/Explicit Waits/sleep以及Fluent waits
selenium定位元素时,有些元素需要等待一段时间始出来,从而才能定位到,继而才能进行下一步的操作,详细了解一下selenium中几种等待的方式sleepsleep是time模块下的一个方法,默认单位是secondsfrom time import sleepfrom selenium import webdriverdriver = webdriver.Chrome(...原创 2017-08-09 17:21:04 · 2199 阅读 · 1 评论 -
python解析json文件回顾(load/loads)
python解析json文件的举例原创 2017-08-18 18:26:13 · 24585 阅读 · 0 评论 -
python 使用ConfigParser解析&修改配置文件
注意:Python解释器版本2.7 使用ConfigParser修改&读取配置文件原创 2017-08-21 12:56:13 · 4291 阅读 · 0 评论 -
Python引用其他模块之sys.path
在编写代码时,有时候会导入系统自带模块,有时候要导入自己定义的模块。这与windows/Linux中的环境变量类似。Python解释器会有一个默认的目录(sys.path),在解释器执行时,会从这个默认的目录里去寻找引用的模块。原创 2017-09-26 13:44:54 · 1154 阅读 · 0 评论 -
Python 2与Python 3区别之记录
python 2.7与python 3.6使用中的区别记录 print json.load reload(sys)原创 2017-12-14 07:39:10 · 503 阅读 · 0 评论 -
python生成json(dump/dumps)
http://blog.youkuaiyun.com/u010895119/article/details/77377413 python的encode功能,对我来说使用场景比较少,但最新遇到了一个问题:直接从接口获取的json串中,如果有中文,则中文在json串中是以ASCII码存在的,这个问题用dump/dumps的方法解决了,所以记下来理一下(python解释器版本:2.7)原创 2017-09-05 17:56:37 · 8918 阅读 · 0 评论 -
Python虚拟环境virtualenv&Pipenv
照例的唠叨:在开发不同的项目时,用到的Python版本不一样,或者用到的库不一样但import时名称相同,或者用到的是同一个库但是版本不同且存在兼容问题,怎么办呢。在没有引入虚拟环境时,前者好解决,可以选择运行时的Python解释器,后两者就尴尬了,只能先uninstall一个,再install一个,这个体验好差;项目开发完成后,生成项目所依赖的库。项目A使用了M1,项目B使用了库M2,...原创 2019-02-27 16:06:41 · 3722 阅读 · 0 评论