1、python端安装uiautomator2pipinstall--preuiautomator2pipinstallpillow2、手机端安装atx-agent(守护进程)python-muiautomator2init安装过程中手机要同意安装ATX,安装成功之后手机端会出现一个ATX应用3、通过USB或者wifi连接设备a、通过usb连接(devicename通过adbdevices获取)importuiautomator2asu2d=u2.conn
系统 2019-09-27 17:50:14 2396
importtimedeflog_time(func,*args,**kwargs):definner():t1=time.time()func(*args,**kwargs)t2=time.time()print(f"使用的时间是{t2-t1}s")returninner@log_timedefappend_func():ll=list()foriinrange(10000):ll.append(i)@log_timedefinsert_func():l
系统 2019-09-27 17:49:44 2396
某局某领导给了3只excel文件,一只里面有4个sheet需要处理,一个sheet有250+列,算下来总共有3000+列需要手动反复插入、删除列、拷贝、求和,所以给了4天的时间要完成。我不愿意做大量简单而且又是重复性工作,看了看3只表格的格式基本一样,于是我用python写了30行代码完成了这个“艰巨”任务。0x01用python操作excel需要安装xlrd、xlwt(或者其他的模块也行)。读取excel文件:workbook=xlrd.open_wor
系统 2019-09-27 17:47:50 2396
前言上网浏览网页的时候,看见好的内容免不了要使用复制粘贴,但是我们看到的内容、心里想要的内容和实际粘贴后的内容往往不一致。数据的获取始于复制,终于粘贴,那么问题来了,在这中间系统做了哪些操作,我们怎么能控制它呢?人生苦短,我用python,查阅相关资料之后发现有很多不一样的实现方式,如利用内置ctypes模块、tk模块,第三方模块如跨平台的pyperclip模块、clipboard模块、pywin.win32clipboard模块等等,大部分都封装好了简洁
系统 2019-09-27 17:46:59 2396
本文为原创,如需转载,请注明作者和出处,谢谢!上一篇:Java网络编程从入门到精通(18):Socket类的getter和setter方法(2)在Socket类中有很多方法在声明时使用throws抛出了一些异常,这些异常都是IOException的子类。在Socket类的方法中抛出最多的就是SocketException,其余还有七个异常可供Socket类的方法抛出。这些异常的继承关系如图1所示。其中灰色背景框所描述的例外就是Socket类的方法可能抛出的
系统 2019-08-29 23:11:34 2396
如果我的关于这个话题的最新帖子没有提醒到你的话,那我明确地说,我是一个Vim的粉丝。所以在你们中的某些人向我扔石头之前,我先向你们展示一系列“鲜为人知的Vim命令”。我的意思是,一些你可能以前没有碰到过的命令,但可能对你来说很有用。作为第二免责声明,我不知道哪些命令是你可能知道的,以及哪些是对你来说有用的。因此这些命令实际上是一些相对少见,但很可能很有用的Vim命令。保存文件并退出说起来有些惭愧,我也是最近才学到这个命令:x和下面的命令是等价的::wq都是
系统 2019-08-29 23:03:21 2396
XMLWebServices一个最显然的用处就是通用数据存取。通过它,你可以把公司的数据库被Internet上的许多客户端来访问,也可以动态地把它导入到第三方的Web站点上,甚至可以允许你的商业伙伴的WebServices去查询。下面就解释一下如何创建一个简单的WebServices,把你的数据库内容显示到InternetExplorer、第三方的WebServices和自定义的C#和VB.NET的客户端。合作伙伴、客户、雇员在使用为多种设备设计的数据时已
系统 2019-08-29 22:52:18 2396
1、Java虚拟机运行时的数据区2、常用的内存区域调节参数-Xms:初始堆大小,默认为物理内存的1/64(<1GB);默认(MinHeapFreeRatio参数可以调整)空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制-Xmx:最大堆大小,默认(MaxHeapFreeRatio参数可以调整)空余堆内存大于70%时,JVM会减少堆直到-Xms的最小限制-Xmn:新生代的内存空间大小,注意:此处的大小是(eden+2survivorspace)。
系统 2019-08-29 22:51:21 2396
应用场景在用FineReport制作的报表中,在参数界面,往往需要在一个控件中动态的控制其他控件的值,如下图,当username有值时,state自动变为1,否则变为2::解决方案可以通过js脚本获取到需要的控件,从而获得控件的值,及给控件赋值。示例我们利用FineReport制作一个简单的例子实现上图效果。1、参数界面如下图参数界面username控件类型为下拉框,数据自定义,实际值和显示值都为:jerny,anna,merry。state控件类型选择单
系统 2019-08-29 22:43:33 2396
数据库的水平划分和垂直划分很早以前就接触了,只是没有实践,没有什么体会,只有最近两年才有接触,今天也和大家聊聊。垂直划分按照功能划分,把数据分别放到不同的数据库和服务器。当一个网站开始刚刚创建时,可能只是考虑一天只有几十或者几百个人访问,数据库可能就个db,所有表都放一起,一台普通的服务器可能就够了,而且开发人员也非常高兴,而且信心十足,因为所有的表都在一个库中,这样查询语句就可以随便关联了,多美的一件事情。但是随着访问压力的增加,读写操作不断增加,数据库
系统 2019-08-29 22:41:44 2396