python
文章平均质量分 79
honeyCR
这个作者很懒,什么都没留下…
展开
-
Python 刷题记录总结
Python endswith()用于判断字符串是否以指定后缀结尾,如果以指定后缀结尾返回True,否则返回False。可选参数"start"与"end"为检索字符串的开始与结束位置str.endswith(suffix[, start[, end]])参数suffi:该参数可以是一个字符串或者是一个元素start:字符串中的开始位置end :字符中结束位置返回值如果字符串含有指定的后缀返回True,否则返回Falseeg:str = "hello world!!!" suffi原创 2020-10-18 22:20:42 · 289 阅读 · 0 评论 -
总结:python paramiko winrm
paramiko之前使用过paramiko连接过linux机器,做过文件传输。做一个总结首先两台或多台主机需要实现免密登录:假设host1 ip:192.168.0.1, host2 ip:192.168.0.2在host1上运行, ssh-keygen -t rsa,一路回车,这样会在你的用户root的目录下生成.ssh目录,里面包含了你root用户的公钥文件 id_rsa.pub和私钥文件id_rsa在host1上运行,ssh-copy-id root@192.168.0.2,当需要确原创 2020-10-12 21:01:23 · 447 阅读 · 0 评论 -
开启微信小程序debug
小程序融合了Native app和web-app的特性,本质上是一种 Web 应用,可以通过PC浏览器进行页面元素的 Inspect。为了可以在chrome://inspect/#devices进行元素定位,首先要开启debug功能。可参考以下链接 微信debug对于安卓原生的UI组件,我们可以直接用UIAutomator查看元素属性,如下图所示:打开元素树点击要定位的元素,右侧一栏会显示其元素属性.每个原生组件有很多属性,如resource-id、text、class、content-d原创 2020-07-27 20:21:03 · 5261 阅读 · 0 评论 -
appium启动app
appium启动apk刚开始接触,记录一下,appium启动app,主要是通过apiif __name__ == '__main__': desired_caps = dict() desired_caps['platformName'] = 'Android' desired_caps['platformVersion'] = '8' desired_caps['deviceName'] = '[HUAWEI] EVA-AL00' desired_caps[原创 2020-07-24 20:02:32 · 472 阅读 · 0 评论 -
appium API 之 TouchAction,TouchActions,MultiAction
最近在做一些安卓自动化的项目,新手踩了一些坑,总结一下。现在用过的常用库包括TouchAction、TouchActions、MultiAction。总结一下api和使用。TouchActionTouchAction是appium的辅助类,主要是一些手势操作。from appium.webdriver.common.touch_action import TouchActiontap:对元素执行点击操作跳进函数看一下源码def tap(self, element=None, x=None,原创 2020-07-10 17:56:53 · 742 阅读 · 0 评论 -
python-操作windows窗口
在自动化测试时,遇到一种情况,校验是否打开了某程序,但不涉及UI自动化,所以就想到了利用windows窗口去校验。关闭窗口句柄比如,关闭资源管理器的窗口import win32gui,win32condef close_windows_handle(title): #"CabinetWClass"是explorer的类名 handle = win32gui.Fin...原创 2020-03-23 19:46:03 · 1948 阅读 · 0 评论 -
python-获取、查询、关闭进程
"""获取所有进程"""def get_process(): #获取当前所有的进程 pids = psutil.pids() for pid in pids: p = psutil.Process(pid) process_name = p.name() print("Process name is: %s, pid i...原创 2020-03-23 19:33:07 · 5317 阅读 · 2 评论 -
python-读取、修改注册表信息
查询遍历注册表注册表分两部分:键和值键是一个树结构,一个键下面可以有很多子键一个注册表有5个根键。官网:链接方法解释RegOpenKey打开注册表项RegQueryInfoKey检索有关指定注册表项的信息RegQueryValue检索有关指定注册表项的信息有需要请去官网找,下面程序是自己工作时写的遍历与筛选,可供参考。import win32...原创 2020-03-23 19:23:58 · 4362 阅读 · 0 评论 -
python-获取本地磁盘信息
Win32_LogicalDisk类官网地址:Win32_LogicalDisk查看本地磁盘信息import wmidef get_disk_info(): info_ = [] myWmi = wmi.WMI() for disk in myWmi.Win32_LogicalDisk(): info = {"diskName":dis...原创 2020-03-23 19:10:03 · 1187 阅读 · 0 评论 -
selenium-元素定位表达式正确,但却定位不到元素?
在定位元素时,有时候会出现定位表达式正确,却找不到元素的情况,分析一下我遇到的几种原因。1.定位表达式不唯一定位元素时,我们会采取某种定位方式,有时会出现定位失败的情况,这是因为可能定位表达式不唯一解决方法:如上图所示,(1)打开开发者工具,按Ctrl+F,复制定位表达式,(2)按右边的箭头查看相同字符串的位置,若也是另一元素的id,则用id定位会失败,更换定位方式2. 内嵌页面If...原创 2020-03-04 19:02:44 · 1789 阅读 · 0 评论 -
selenium测试video&audio&table
在操作视频或者音频的时候,获取属性可能会遇到很多问题,可以使用js的方法辅助我们进行校验。视频校验视频时长如果视频/音频在html页面可以找到相应的标签,可以通过dom对于这些标签的操作api来获取相应信息。获取播放总时长:document.querySelector(‘video’).duration获取播放进度时长:document.querySelector(‘video’).cu...原创 2020-02-29 13:17:22 · 3233 阅读 · 0 评论 -
seleniun校验canvas画笔操作
问题描述:浏览器有一个画板的功能,需要去校验画笔,如何在画板上进行操作,并做校验呢?解决:鼠标移动操作利用selenium的ActionChains类,模拟鼠标移动。click_and_hold:鼠标点击某元素,不释放move_by_offset:鼠标移动相对于之前位置的(x,y)release():鼠标释放perform():执行ActionChains的行为链校验如何校验画笔操作成功了呢...原创 2020-02-28 17:34:19 · 414 阅读 · 0 评论 -
python-计算笛卡尔积
计算多个集合的笛卡尔积,很多语言都没有提供直接计算笛卡尔积的方法,需要自己写很长的代码计算笛卡尔积今天用python 实现,如下:Python的内建模块itertools提供了非常有用的用于操作迭代对象的函数代码:import itertoolsclass cartesian(object): def __init__(self): self._data_lis...原创 2019-03-25 20:34:11 · 1739 阅读 · 1 评论 -
python之sys模块
python之sys模块详解之前用过sys模块的一种用法,今天总结一下。sys.argv功能:在外部向程序内部传递参数eg:#!/usr/bin/env pythonimport sysprint(sys.argv[0])print(sys.argv[1])运行:python sys.py argv1结果:sys.exit(n)功能:执行到主程序末尾,解释器自动退出,...原创 2019-03-18 19:53:56 · 425 阅读 · 0 评论 -
Python-SMTP发送邮件
之前学习过SMTP(Simple Mail Transfer Protocol,知道是简单邮件传输协议,是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。python的smtplib提供了一种很方便的途径发送电子邮件。它对smtp协议进行了简单的封装。学习一下python对其的操作方法:Python创建 SMTP 对象语法如下:import smtplibsmtpOb...原创 2019-03-22 21:21:03 · 261 阅读 · 0 评论 -
python-hashlib加密
之前遇到过MD5加密的问题,今天整理一下hashlib模块,了解常见的加密方式。import hashlibstring = "123456"md5加密md5 = hashlib.md5()md5.update(string.encode('utf-8')) res = md5.hexdigest()print("md5加密结果:",res)sha1加密sha1 ...原创 2019-03-29 21:57:25 · 251 阅读 · 0 评论 -
python-itertools
昨天见到了一个python的内建模块-itertools。今天总结一下:itertools提供了非常有用的用于操作迭代对象的函数,整理如下首先,我们看看itertools提供的几个“无限”迭代器count()eg:import itertoolsarr = itertools.count(1)for n in arr: print(n)这里会从1开始打印出序列,程序不...原创 2019-03-26 21:18:07 · 180 阅读 · 0 评论 -
selenium-模拟鼠标拖拽
1、从一个元素拖拽到另一个元素:from selenium import webdriverfrom selenium.webdriver import ActionChainsimport timebrowser = webdriver.Chrome()try: browser.get("http://www.runoob.com/try/try.php?filename=j...原创 2019-03-27 20:18:11 · 9465 阅读 · 1 评论 -
Random-获取随机数
之前也用过Random的函数,今天了解一些python中random的函数。import randomprint(random.random)print(random.random())这用于生成一个0到1的随机符点数: 0 <= n < 1.0看结果:random.uniformprint(random.uniform(10, 20))print(random.u...原创 2019-04-01 21:38:35 · 1391 阅读 · 0 评论 -
python-二次方程
导入 cmath模块,计算复杂数学运算eg:我们计算二次方程式 ax**2 + bx + c = 0代码如下:import cmath a = float(input('输入 a: '))b = float(input('输入 b: '))c = float(input('输入 c: ')) d = (b**2) - (4*a*c) # 两种求解方式sol1 = (-b-...原创 2019-04-02 21:23:51 · 4925 阅读 · 2 评论 -
按相反的顺序输出列表的值
按相反的顺序输出列表的值法一:a = ['one', 'two', 'three']for i in a[::-1]: print(i)法二:a = ['one', 'two', 'three']print(a[-1::-1])法三:使用reverse()list = ['a', 'b', 'c', 'd']list.reverse()print( list)...原创 2019-04-08 21:37:21 · 3231 阅读 · 0 评论 -
pyhton-练习
题一:有如下值集合 [11,22,33,44,55,66,77,88,99,90]将所有大于 66 的值保存至字典的第一个 key 中将小于 66 的值保存至第二个 key 的值中。即: {‘k1’: 大于 66 的所有值,‘k2’: 小于 66 的所有值}代码如下:法一,自定义函数:def f1(arr): result = [] for item in arr...原创 2019-04-03 21:16:18 · 3605 阅读 · 0 评论 -
python-练习
Python 实现秒表功能import timeprint('按下回车开始计时,按下 Ctrl + C 停止计时')while True: try: input() starttime = time.time() print('开始') while True: print('计时: ', rou...原创 2019-04-09 20:40:40 · 406 阅读 · 0 评论 -
python-字典
概念字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号分割,整个字典包括在花括号 {} 中dict = {'a':1,'b':2,'c':3}print(dict['b'])print(dict)修改字典dict['a'] = 4dict['b'] = 5print(dict)删除字典元素显示删除一个字典用del命令,del dict['...原创 2019-01-25 19:28:54 · 477 阅读 · 0 评论 -
selenium-处理弹窗
将以下代码copy至txt文本里,后缀改成html,然后用浏览器打开<html> <head> <title>Alert</title> </head> <body> <input id = "alert" value = "alert" type = "button" on...原创 2019-03-21 21:48:56 · 3803 阅读 · 1 评论 -
python-迭代器与生成器
迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。迭代器有两个基本的方法:iter() 和 next()。字符串,列表或元组对象都可用于创建迭代器eg:list = [1,2,3,4]it = iter(list)print(next(it))如果继续print:print(next(it))迭代器对象可以使用常...原创 2019-03-12 19:27:25 · 290 阅读 · 0 评论 -
Python yield 使用浅析
之前了解了生成器的概念,带有 yield 的函数在 Python 中被称之为 generator(生成器),那么应该什么时候使用呢?举个例子:简单输出斐波那契數列前 N 个数def fab(max): n, a, b = 0, 0, 1 while n < max: print(b) a, b = b, a + b n = n + 1...原创 2019-03-15 23:01:26 · 174 阅读 · 0 评论 -
python简单的练习实例
练习几个简单的python程序1、输出1到100之间所有的偶数法一:num = 1while True: if num==51: break print(num*2) num+=1法二:num = 2while num<=100: print(num) num+=22、输出1到100的奇数法一:num = 1w...原创 2019-02-21 19:48:24 · 4659 阅读 · 0 评论 -
python判断闰年,判断质数
判断用户输入的年份是否为闰年year = int(input("输入年份: "))if (year % 4) == 0: if (year % 100) == 0: if (year % 400) == 0: print("{} 是闰年".format(year)) else: print("{} 不是闰年"原创 2019-02-14 20:24:03 · 556 阅读 · 0 评论 -
python-求1+2!+3!+...+20!的和
先利用递归方法求一下5!def fact(i): sum = 0 if i == 0: sum = 1 else: sum = i*fact(i-1) return sumprint(fact(5))求1+2!+3!+…+20!的和#法一:n = 0s = 0t = 1for n in range(1,21): ...原创 2019-01-22 20:25:48 · 40950 阅读 · 0 评论 -
python正则表达式
正则表达式是一个特殊的字符序列,它能帮助我们方便的检查一个字符串是否与某种模式匹配re.match函数re.match尝试从字符串的起始位置匹配一个模式,如果在起始位置未匹配成功,match()就返回none。语法:re.match(pattern, string, flags=0)举例:import reprint(re.match('www','www.baidu.com')....原创 2019-01-16 19:40:20 · 204 阅读 · 0 评论 -
pyhton序列
序列的概念包含若干个元素, 元素有序排列, 可以通过下标访问到一个或者多个元素。操作符in/not in: 判定一个元素是否存在于序列中, 返回布尔值.操作符(+): 把两个相同类型的序列进行连接.操作符(*): 让一个序列重复N次.a =[1,2,3,4]print(1 in a)b = [1,2]print(a+b)print (a*2)用C++写一个交换...原创 2019-01-21 22:22:03 · 173 阅读 · 0 评论 -
python-类
创建类基本语法class ClassName: '类的帮助信息' #类文档字符串 class_suite #类体eg1:class Employee: '所有员工的基类' count = 0 #类的构造函数 def __init__(self,name,salary): #self,类的实例 self.name =...原创 2019-01-14 20:38:36 · 561 阅读 · 0 评论 -
python-元组
Python的元组与列表类似,不同之处在于元组的元素不能修改。创建元组使用小括号,需要在括号中添加元素,并使用逗号隔开。#创建元组tup = () #空元组tup1 = (1, 2, 3, 4, 5 )tup2 = "a", "b", "c", "d" #任意无符号的对象,以逗号隔开,默认为元组看一个题:这里应该选A注意:元组中只包含一个元素时,需要在元素后面添加...原创 2019-01-24 20:08:32 · 144 阅读 · 0 评论 -
python-多线程
Python中使用线程有两种方式:函数或者用类来包装线程对象。在python3中,thread 模块已被废弃,可以使用 threading 模块代替。所以,在 Python3 中不能再使用&quot;thread&quot; 模块。为了兼容性,Python3 将 thread 重命名为 “_thread”。函数式调用thread模块中的start_new_thread()函数来产生新线程。语法如下:_thr...原创 2019-01-19 21:58:04 · 121 阅读 · 0 评论 -
python-socket编程
server:import sockets = socket.socket()host = socket.gethostname()port = 12345s.bind((host,port))s.listen(5)while True: c,addr = s.accept() print("连接地址",addr) c.send("hello world...原创 2019-01-18 17:07:53 · 174 阅读 · 0 评论 -
有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
代码如下:#!/user/bin/pythonfor i in range(1,5): for j in range(1,5): for k in range(1,5): if(i!=k)and(i!=j)and(j!=k): print(i,j,k)原创 2018-12-27 20:29:44 · 3950 阅读 · 0 评论 -
关于list
使用列表作为堆栈#使用列表作为堆栈stack = [1,2,3]stack.append(4)stack.append(5)print(stack)print(stack.pop())print(stack.pop())print(stack)使用列表作为队列也可以使用列表作为队列。虽然列表末尾的追加和弹出很快,但是从列表的开头进行插入或弹出,因为所有其他元素都必须移动...原创 2019-02-22 20:28:54 · 186 阅读 · 0 评论 -
python-列表排序
输入三个整数x, y, z,形成一个列表,请把这n个数由小到大输出这就是要求升序排列,用之前写过几种方法法一#数组li=[1,3,5,7,2,0]# 用sort()排序li_sort = sorted(li, reverse = False)print('用sort方法,排列结果:{}'.format(li_sort))法二:冒泡排序# 冒泡排序def bubbleSor...原创 2019-02-27 20:52:50 · 3548 阅读 · 0 评论 -
python-求三角形的面积
计算三角形的面积法一:#计算三角形的面积a = float(input('输入三角形第一边长:'))b = float(input('输入三角形第二边长: '))c = float(input('输入三角形第三边长:'))while a+b<c or a+c<b or b+c<a: print('输入的边不构成三角形,请重新输入:') a = fl...原创 2019-03-11 19:41:40 · 62095 阅读 · 7 评论