python
learn2t
pythonic and autotest
展开
-
Alfred3 workflow中使用python3脚本完成文件查找,关键字查找
脚本源码:https://github.com/penn201500/alfred_workflow__snippets_labAlfred3 workflow的使用中发现:Alfred3 workflow的 "in keyword" 可以搜索到文本中包含关键字的文件,但是不能指定搜索范围 Alfred3 workflow的 "find keyword" 可以搜索到文件名包含关键字的文件...原创 2019-05-04 21:28:24 · 2879 阅读 · 0 评论 -
python 迭代器为什么无法第二次打印元素?
问题: python脚本中,迭代器为什么无法第二次打印元素? 先来看一个小程序:#!/usr/bin/env python3# -*- coding: utf-8 -*-#将字符串'12'转成数字12dic = {'1':1,'2':2}a = map(lambda ch:dic[ch],'12')print(a)#print(list(a))print(a)for x in a:原创 2016-05-18 07:57:11 · 2273 阅读 · 0 评论 -
汉诺塔游戏
游戏规则:有A,B,C三根针,将A针上N个从小到大叠放的盘子移动到C针,一次只能移动一个,不重复移动,小盘子必须在大盘子上面。关键分析:将N-1个盘子从A移动到B,然后将第N个盘子从A移动到C。 剩下N-1个盘子需要从B移动到C,此时的中转站则从B变成了A(鉴于这时盘子都在B针),目标仍然是C针。 下一次重复的时候,只剩下A上的N-2个盘子需要移动(N-1与N都已经移动到了C),中转站又变成B,原创 2016-08-11 00:16:19 · 1124 阅读 · 0 评论 -
python 字典的key与value进行交换
交换字典的key与value的两种方法:方法一: 使用dict.items()方式#!/usr/bin/env python3# -*- coding: utf-8 -*-dict_ori = {'A':1, 'B':2, 'C':3}dict_new = {value:key for key,value in dict_ori.items()}print(dict_new)运行结果:{1:原创 2016-08-03 00:18:37 · 19577 阅读 · 0 评论 -
python3 比较两个list的结构
题目:比较两个list的结构,如: a = [1,2,3] b = [4,5,6] 则两个list的结构相同 如: a = [1,2,3,[4,5,6,[7]]] b = [1,[2],[3]] 则两个list的结构不同思路:print list的时候会将list的括号、逗号都打印出来。获取打印结果中的括号、逗号作为list的结构。比较即可得知两个list结构是否相同代码:import原创 2016-07-29 22:08:51 · 3199 阅读 · 0 评论 -
python3 fibonacci的高效解法
目标:使用python求解fibonacci函数解法一:#!/usr/bin/env python3# -*- coding: utf-8 -*-def fib(n): if n in [0,1]: return n return fib(n-1) + fib(n-2)print(fib(10))该方法直观好理解,但是效率低下。当n为50时,需要等好久才能得出结果。原创 2016-07-29 21:30:22 · 1524 阅读 · 0 评论 -
python3 zip的用法
例子: 井字游戏,有时也被称为“进攻和防守”,是一个两人玩家(X和O)轮流标志着3×3的网格的空间的连珠游戏。最先在任意一条直线(水平线,垂直线或对角线)上成功连接三个标记的一方获胜。 但我们不去玩这个游戏。你将是这个游戏的裁判。你被赋予游戏的结果,以及你必须判断游戏是平局还是有人胜出,以及谁将会成为最后的赢家。如果X玩家获胜,返回“X”。如果O玩家获胜,返回“O”。如果比赛是平局,返原创 2016-06-19 19:13:55 · 7632 阅读 · 0 评论 -
python3 sorted的用法
例题:先来看一个例题: 给你一个其中包含不同的英文字母和标点符号的文本,你要找到其中出现最多的字母,返回的字母必须是小写形式, 当检查最想要的字母时,不区分大小写,所以在你的搜索中 “A” == “a”。 请确保你不计算标点符号,数字和空格,只计算字母。 如果你找到 两个或两个以上的具有相同的频率的字母, 返回那个先出现在字母表中的字母。 例如 – “one”包含“o”,“n”,“e原创 2016-06-19 16:26:32 · 6308 阅读 · 0 评论 -
python脚本爬取今日百度热点新闻
目标:python脚本爬取今日百度热点新闻知识点:python3使用 urllib.request.urlopen 去打开一个特定网址中文可以加 decode(‘gbk’) 来避免乱码re.S 用来解决跨行匹配的问题,用法: re.compile(pattern, re.S)代码import urllib.requestimport reurl = 'http://news.baidu.c原创 2016-07-25 23:01:59 · 3672 阅读 · 1 评论 -
reversed与zip的用法:顺时针方向读取二维数组
之前的博文中谈到了 python3 zip的用法 ,现在看看reversed与zip配合,顺时针读取二维数组的方法。例题注:例题来自 https://www.codewars.com/kata/snail/python 给定一个n*n的矩阵,通过函数 snail()得到按顺时针方向读取的list: array = [[1,2,3], [4,5,6],原创 2016-07-10 00:21:00 · 988 阅读 · 0 评论 -
获取两个字符串中最长的公共字符串
例题:longest common substring 获取两个字符串中最长的公共字符串 如: 如果s1=’abcdefgh’,s2=’cdefgh’; s1与s2的最长公共字符串’cd’例子: s1=’abcdefgh’,s2=’cdefgh’ lcs(s1,s2) ==> ‘cd’解法:#!/usr/bin/env python3# -*- coding: utf-8 -*-原创 2016-06-26 21:30:59 · 2130 阅读 · 0 评论 -
获取string中的最长回文字符串
例题获取string中的最长回文字符串所谓回文字符串,即该字符串从左到右读和从右到左读是完全一样的。如“123454321”就是一个长度为9的回文字符串。 现要求使用python完成:对一个字符串s,找出其中为回文字符串的部分,并返回回文字符串的长度。规则为: 1. 如果s是1个字符,则长度为1,如“a” 2. 如果s为空“”,则长度为0 3. 如果s中有部分是回文字符串,返回最长回文字符串原创 2016-06-26 10:07:46 · 1683 阅读 · 0 评论 -
找到list中差距为k的数值对
转自: http://www.oschina.net/code/snippet_1448389_53414题目:用python写一个程序,找出数组中差值为K的数共有几对示例:差值k=4 and 数组是[7, 6, 23,19,10,11, 9, 3, 15] 这样的结果是(7,11) (7,3) (6,10) (19,23) (15,19) (15,11) 共6对代码:#!/usr/bin/en转载 2016-09-04 20:45:46 · 868 阅读 · 0 评论 -
5 个很好的 Python 试题(易错概念)
转自:https://segmentfault.com/a/1190000000618513注:本文的原文是 5 Great Python Interview Questions,同时谢谢 @非乌龟 指出我的疏漏,没有来源标记,也赞其细心,希望看文章的同时大家都能看下原文,因为每个人的理解不一致,原汁原味的最有帮助,我翻译很多文章的目的一是为了自己以后找资料方便;二是作为一个索引,以后再看原文的时候转载 2016-09-04 20:51:46 · 1609 阅读 · 0 评论 -
robotframework的第一个测试用例
创建测试项目选择菜单栏file—–>new Project 注意:Type 选择 Directory创建测试套件选中“测试项目”,右键,选择new Suite注意: Type 选择 File 创建测试用例右键“测试项目”选择new Test Case 输入用例name ,点击OK即可设置导入selenium2library库: 如果导入的库显示为红色,表示导入的库不存在。如果是黑原创 2016-10-25 09:10:01 · 2291 阅读 · 3 评论 -
Python的方法解析顺序(MRO)
转自:http://hanjianwei.com/2013/07/25/python-mro/举例:http://blog.csdn.net/tianmohust/article/details/7688108对于支持继承的编程语言来说,其方法(属性)可能定义在当前类,也可能来自于基类,所以在方法调用时就需要对当前类和基类进行搜索以确定方法所在的位置。而搜索的顺序就是所谓的「方转载 2017-09-22 09:40:35 · 678 阅读 · 0 评论 -
Python Mock的入门
转自:https://segmentfault.com/a/1190000002965620Mock是什么Mock这个词在英语中有模拟的这个意思,因此我们可以猜测出这个库的主要功能是模拟一些东西。准确的说,Mock是Python中一个用于支持单元测试的库,它的主要功能是使用mock对象替代掉指定的Python对象,以达到模拟对象的行为。简单的说,mock库用于如下的场景:假转载 2017-09-06 17:11:33 · 1064 阅读 · 0 评论 -
理解'*','*args','**','**kwargs'
>>> l = [7,4]>>> fun(*l)Traceback (most recent call last): File "", line 1, in TypeError: fun() takes exactly 3 arguments (2 given)1234512345‘*l’与位置参数混合使用>>> fun(23, *l)23 7 41212在这里,我转载 2017-07-28 10:53:29 · 589 阅读 · 0 评论 -
安装python robotframework
1.安装python2.7: https://www.python.org/ RF框架是基于python 的,所以一定要有python环境。 注:安装python2.7.12 注意是32位还是64位2.安装Robot framework : https://pypi.python.org/pypi/robotframework/2.8.5 安装python-2.7.12.amd64.ms原创 2016-10-24 00:23:32 · 1726 阅读 · 0 评论 -
python logging模块使用教程
转自:http://www.jianshu.com/p/feb86c06c4f4简单使用#!/usr/local/bin/python# -*- coding:utf-8 -*-import logginglogging.debug('debug message')logging.info('info message')logging.warn('war转载 2017-06-26 17:27:15 · 608 阅读 · 0 评论 -
使用python Tkinter制作一个可以生成重复文本片段的小工具
作用: 使用python Tkinter制作一个图形界面,可以快速生成重复文本小片段代码:from Tkinter import *from tkSimpleDialog import askstringfrom tkFileDialog import asksaveasfilenamefrom tkMessageBox import askokcancelimport reclass原创 2017-05-26 23:46:12 · 1023 阅读 · 0 评论 -
python脚本构造有部分变动的重复文本
在上一篇博文 同一个docker镜像,如何拉起多个docker container? 中,涉及到要在docker-compose中构造200个文本片段的场景。 可以使用如下脚本:#!/usr/bin/env pythonf = open("out.txt", "w")longTxt1 = """version: '1'services:"""longTxt2 = """ imag原创 2017-05-16 22:52:49 · 629 阅读 · 0 评论 -
robotframework 使用自己的python库
有时候找不到合适的库来完成自动化工作,则需要使用自己定义的python库。本文简单描述自建python库,以及在robotframework中的使用方法。创建库文件参照redislibrary库 : https://github.com/penn201500/robotframework-redislibrary/tree/master/RedisLibrary 可以看到,必要的文件有原创 2017-04-09 20:16:25 · 6164 阅读 · 2 评论 -
robotframework 使用ssh登录linux
robotframework 使用ssh登录linux标签(空格分隔): python robotframework windows前面的博文中已经实现了使用selenium library登录百度并搜索(windows 7系统 http://blog.csdn.net/justheretobe/article/details/52918100)。今天说说如何登录linux服务器并执行命令行,这样就原创 2017-03-12 20:03:24 · 4513 阅读 · 0 评论 -
robotframework 使用databaselibrary登录mysql数据库
登录mysql数据库,可以使用ssh登录linux之后,再“mysql -u xxx -pxxx”登录。 但暂未在robotframework中未找到实现方法,有知道的大神请指点一下:) ,只能使用另一个方式 “Connect To Database”先上代码:代码:*** Settings ***Documentation mysql用例Suite Setup Connec原创 2017-03-12 21:52:06 · 1579 阅读 · 0 评论 -
RFS的web自动化验收测试--变量的声明、赋值及其使用
本来这讲是准备介绍List变量及其用法的,不过写了个开头之后觉得还是要先把变量有关的内容说一下,这样后面再写List变量的介绍就会省事一些。一、变量的声明1、变量标识符每个变量都可以用 变量标识符{变量名} 来进行表示,变量标识符在之前用户关键字的地方介绍了一下,Scalar变量用 $ 作为标识符,List型变量用 @ 作为标识符,不过这只能作为一个初步的区分,因为同样转载 2016-10-27 07:09:57 · 1735 阅读 · 0 评论 -
命令行执行robot framework的项目和用例
1.执行某个项目 cmd中输入: pybot ride上创建项目的source 2.执行某个测试集 cmd中输入命令: pybot ride上创建的测试集的source 3.执行某个测试集里面的某个用例 pybot –test 测试用例名称 测试用例所在的测试集的source 4.执行项目中指定标签的测试用例: pybot –include tag名 测试用例的source原创 2016-10-26 20:29:39 · 13083 阅读 · 0 评论 -
win7上的python脚本无法连接运行在virtualbox上的mongodb
问题:在win7上运行python脚本无法连接到virtualbox上的mongodb数据库,但是在virtualbox中的linux系统上却可以解决方法: 修改 /etc/mongodb.conf文件的bind_ip,允许同网段的ip地址接入/etc/mongodb.conf文件的bind_ip默认值为127.0.0.1: 所以,即使脚本的ip地址是virtualbox中的linux serve原创 2016-05-13 00:20:53 · 802 阅读 · 0 评论 -
pymongo实现对mongodb进行增删改查操作
问题:使用python脚本对服务器上的mongodb某表的记录进行查询解决方法: 可以使用pymongo模块实现对mongodb的增删改查limit: pymongo现在不能处理ssl pem key passsword参数,所以,如果需要自动输入ssl pem key password的场景不适合用pymongo模块。可以使用命令行操作mongodb。测试环境:linux mint17.3 +原创 2016-05-12 23:46:26 · 24611 阅读 · 2 评论 -
python ssh到linux
问题:使用python脚本对服务器上的文件进行查询 其中: 服务器使用ssh的用户名/密码方式认证;解决方法: 1. 使用paramiko模块实现ssh登录部分测试环境:virtualbox+linux mint17python ssh到linuxpython模块paramiko已实现ssh协议,import即可 代码实现:import paramikoimport pprint #pre原创 2016-05-12 20:01:21 · 3189 阅读 · 0 评论 -
python:为什么reversed()之后,第二次以后的list()得到的结果都是空?
在测试list()与reversed()结合时,碰到如下结果:>>> a = '123 456'>>> b = reversed(list(a.split()))>>> b<list_reverseiterator object at 0x0000000002D45FD0>>>> list(b)['456', '123']>>> list(b)[]>>> list(b)[]>>>原创 2016-01-29 22:09:34 · 5141 阅读 · 0 评论 -
python class中的@staticmethod
尝试解题:LeetCode题解整理版(二) 中的题一”Reverse words in string” 第一次代码及碰到的问题代码:#!/usr/bin/env python3# -*- coding: utf-8 -*-class Reverse_str(object): """docstring for Reverse_str""" def __init__(self原创 2016-01-29 21:46:25 · 621 阅读 · 0 评论 -
关于Python的super用法研究
一、问题的发现与提出 在Python类的方法(method)中,要调用父类的某个方法,在Python 2.2以前,通常的写法如代码段1: 代码段1: class A: def __init__(self): print "enter A" print "leave A" class B(A): def __init__(self): print "ente转载 2016-01-29 20:16:12 · 493 阅读 · 0 评论 -
使用py2exe生成一个exe文件
在windows中,使用py2exe将py脚本转换成exe文件时,在dist目录下会有zip,dll等其他文件。如果想要只生成一个可单独运行的exe文件,需要在setup.py文件中添加bundle_files:1和zipfile=None。 代码如下: - setup.pyfrom distutils.core import setupimport py2exeoptions={"py2原创 2016-01-27 21:41:08 · 3944 阅读 · 0 评论 -
python脚本检查网页能否打开
批量判断网站能否访问,可以使用urllib的getcode()方法#!/usr/bin/env python3# -*- coding: utf-8 -*-from urllib.request import urlopenurl = 'http://www.baidu.com'resp = urlopen(url)code = resp.getcode()print('the result原创 2016-01-24 14:16:21 · 6349 阅读 · 0 评论 -
使用py2exe将python3程序转换成exe文件
现在py2exe已经支持python3了!不用再纠结cx_Freeze 环境python3.4 安装 py2exe 0.9.2.2下载安装: https://pypi.python.org/pypi/py2exe/ py2exe的使用网上有详细的相关资料,故步骤精简如下:创建测试脚本helloworld.py#!/usr/bin/env python3# -*- coding: utf原创 2016-01-24 14:02:53 · 27033 阅读 · 8 评论 -
python 显示目录下文件
使用python脚本获取目录下的所有文件:方法一:使用os.listdirimport oscurrentdir = os.getcwd()'''display files and dirs in current dir'''for files in os.listdir(currentdir): print(files)运行结果: 方法二:使用os.walkimport os转载 2016-01-24 10:46:39 · 2316 阅读 · 0 评论 -
python在windows的cmd中打印彩色文字
在cmd中打印出彩色文字,主代码来自网上,一不小心忘了原链接了,抱歉。下面我是修改后的内容。[python] view plain copy#!/usr/bin/env python #encoding: utf-8 import ctypes STD_INPUT_HANDLE = -10 STD_OUTP转载 2016-01-23 22:27:45 · 4502 阅读 · 0 评论 -
python tkinter实现简单计算器
功能分析基础功能需要有显示区,可以使用label,text,entry显示按键0-9以及运算符鼠标点击按键时,按键的值或者运算结果能够在显示区显示能够清空显示区以备下一次运算输入功能完善和增强如果使用能获取输入的显示区,需要对异常输入进行识别(如字母)界面能够缩放(最小化,最大化)代码实现from tkinter import *class Calculator(Frame):#原创 2016-01-16 17:20:19 · 7105 阅读 · 1 评论 -
python tkinter 实现简单计算器2
功能完善除法除数为0的异常处理非数字输入的异常处理代码实现from tkinter import *from tkinter.messagebox import showinfoclass Calculator(Frame): def keyPress(self,display): text_check = list(display.get()) f原创 2016-01-16 22:21:37 · 1239 阅读 · 0 评论