首页 文章 精选 留言 我的

精选列表

搜索[Python],共10000篇文章
优秀的个人博客,低调大师

Python搭建新冠肺炎预测模型全解读

新冠病毒疫后复工成为当务之急,然而病毒尚未消散,风险权衡面临不确定因素,如果可以准确预测未来的疫情走势,将会为复工计划的制定提供有效辅助。 传统机器学习模型虽然可以精确拟合历史数据,但由于脱离疾病传播机理,外推预测的可靠性低。另一方面,传染病学领域提出的传播模型则恰好相反,主要依赖疾病传播机理进行推演,但对历史数据的拟合能力弱,不同疾病会得到相似的结论,特异性不足。 近日,南栖仙策通过强化学习融合传染病传播机理与数据拟合,使用其自主研发的Universe平台构建传播模型,并基于横琴先进智能计算平台提供人工智能计算资源,实现新冠病毒疫情长达60天的预测,可为疫情防控提供决策辅助。 在线预览预测结果:http://ncov.polixir.ai 值得注意的是,目前AI领域常用的深度学习模型是黑盒模式,内部运算过程难以被人们理解,同时也难以将人

优秀的个人博客,低调大师

聊聊 Python 自动化脚本打包成 APK

云栖号:https://yqh.aliyun.com第一手的上云资讯,不同行业精选的上云企业案例库,基于众多成功案例萃取而成的最佳实践,助力您上云决策! 之前有读者朋友说 Airtest 官方支持将自动化脚本编译成 APK 直接运行,照着官方提供的文档操作了一遍,发现不少的坑,今天带大家一起来填这些坑。 在开始编写自动化脚本之前,我们首先要下载安装 JDK,并配置 JDK 和 ADB 到环境变量中。 以刷抖音短视频这一自动化操作为例,首先我们使用 Airtest IDE 新建一个 .air Airtest 项目。 和常规自动化操作类似,我们需要借助 ADB 命令拿到抖音 App 的应用包名和初始 Activity,利用 start_app() 方法打开抖音。 package_name = 'com.ss.android.ugc.aweme' activity_name = 'com.ss.android.ugc.aweme.splash.SplashActivity' # 部分手机需要开启模拟点击 start_app(package_name,activity=activity_name) 接着拿到屏幕的宽、高数值,利用 swipe() 方法模拟滑动,即可以实现切换视频的操作。 device_attrs = device() print(device_attrs.uuid) # 获取设备的高度和宽度 width, height = device_attrs.get_current_resolution() print(width) print(height) # 开始刷抖音 while True: # 滑动一次 swipe( (width * 0.5, height*3/ 4),(width * 0.5, height / 4),duration=1) sleep(2) 上面这段代码直接在 IDE 运行,自动化操作能正常运行。 下一步,利用 Firebase 打包脚本,依次点击:Firebase - 打包多个脚本 - 选择目标脚本,等待本地生成一个 apk 文件。 使用 adb 命令将 apk 安装到手机上,接着通过 instrument 开启自动化操作。 # 开启自动化任务 adb shell am instrument -w com.netease.open.airbase/android.support.test.runner.AndroidJUnitRunner 坑一:运行之后很快就报错了,报 device() 方法在 kivy 中没有实现。 官方文档提到的原生应用的 poco 没法使用,包含 device() 在内的很多方法,虽然属于 airtest 内部的方法,但是打包成 apk 识别不到。 我们可以将宽度和高度写死,然后再进行滑动操作。 width = 1080 height = 2160 swipe( (width * 0.5, height*1/ 4),(width * 0.5, height*3 / 4),duration=0.5) 坑二:向上滑动事件处理不当。 测试多台设备后发现,脚本代码生成的 apk 在不同设备上运行结果不一致。 仅上面的向上滑动这一步操作,有些手机当做 长按屏幕 来消费,还有一些手机当做 下拉刷新 来处理。 建议先在 Airtest IDE 中运行,保证脚本的正确性的前提下,再去替换改写不被 apk 识别的部分。 总之,利用 Firebase 打包自动化脚本成 apk 单独运行还不是很稳定,另外一起打包内置的 kivy 库还需要兼容和完善,期待官方下一版本。 云栖号:https://yqh.aliyun.com第一手的上云资讯,不同行业精选的上云企业案例库,基于众多成功案例萃取而成的最佳实践,助力您上云决策! 原文发布时间:2020-02-18本文作者:星安果本文来自:“AI派公众号”,了解相关信息可以关注“AI派”

优秀的个人博客,低调大师

Python3 批量修改JPG图片尺寸

功能 批量修改当前文件夹下的jpg图片到设置的尺寸 将修改后的图片移动到 new_img 这个文件夹下 导入库 from PIL import Image # 处理图片模块 import os import shutil # 移动文件模块 如果没有请提前安装相应的库. 定义一个函数用来处理图片尺寸 def smaller_img(x, y, path): # x,y用来传入尺寸,path用来传入路径 old_img = Image.open(path) img_deal = old_img.resize((x, y), Image.ANTIALIAS) # 转换图片 img_deal = img_deal.convert('RGB') # 保存为jpg格式才需要 img_deal.save('新的文件名') 遍历当前文件夹下的文件路径 now_path = os.getcwd() new_path = os.mkdir(now_path + '\\' + 'new_img') # 创建一个名为new_img的文件夹 for file_name in os.listdir(now_path): files_path = now_path + '\\' + file_name print(files_path) # 输出当前目录下所有的文件的绝对路径 将修改后的图片移动到创建的新文件夹 我使用笨办法,用字符串判断的方式,来确定是否是修改后的图片文件.shutil 模块参考链接 for move_name in os.listdir(now_path): move_path = now_path + '\\' + move_name if 'switch' in move_path: shutil.move(move_path,new_dir) # shutil.move(文件/目录 , 目录) else: print(move_path, '无须移动') 把这些功能整合起来 from PIL import Image import os import shutil x = input('请输入需要修改的尺寸,长:') x = int(x) y = input('请输入需要修改的尺寸,高:') y = int(y) now_path = os.getcwd() new_path = os.mkdir(now_path + '\\' + 'new_img') new_dir = now_path + '\\' + 'new_img' # 修改图片大小 def smaller_img(x, y, path): path = str(path) old_img = Image.open(path) img_deal = old_img.resize((x, y), Image.ANTIALIAS) img_deal = img_deal.convert('RGB') img_deal.save('switch_' + file_name) # 遍历文件夹下的文件,并判断是否是JPG文件 for file_name in os.listdir(now_path): files_path = now_path + '\\' + file_name if 'jpg' in files_path: smaller_img(x, y, files_path) # 遍历文件来判断是否是转换后的jpg文件 for move_name in os.listdir(now_path): move_path = now_path + '\\' + move_name if 'switch' in move_path: shutil.move(move_path,new_dir) else: print(move_path, '无须移动') print(file_name, 'switch success') else: print(file_name, 'is not img') 结束语 有错误的地方请指出,请大家多多批评

优秀的个人博客,低调大师

python实现多线程软件分发(局域网)

程序说明:1、适用于局域网C类地址,如要适用CIDR,则需要改造程序;2、多并发下发软件,但没有进行安装;3、需要有远程PC的管理员帐号密码,比较适合域控环境;4、比较适合企业IT管理员使用。 #-*- coding:cp936 -*- #import sys #reload(sys) #sys.setdefaultencoding('utf8') import subprocess import threading import os print '开启软件分发程序' print '-----------------------------------' ipstart=raw_input('请键入你的起始IP地址 :') ipend=raw_input('请键入你的结束IP地址 :') user=raw_input('请输入客户端的管理员用户 :') password=raw_input('请输入客户端管理员密码 :') print '-----------------------------------' print '\n' ipstart='x.x.x.x' ipend='x.x.xx' user='xxx' password='xxx' ipstartlist=ipstart.split('.') ipendlist=ipend.split('.') a=ipstartlist[0] b=ipstartlist[1] c=ipstartlist[2] start=int(ipstartlist[3]) end=int(ipendlist[3]) cmd="cmd.exe" f=open(r'c:\cmd.txt','a') h=1 n=1 #线程数 ep=(end-start+1)/n remain=(end-start+1)%n def deploy(start1,end1): global h while start1 <= end1: p=subprocess.Popen(cmd,shell=True,stdout=subprocess.PIPE, stdin=subprocess.PIPE, stderr=subprocess.PIPE) #ping 进程 pp=subprocess.Popen(cmd,shell=True,stdout=subprocess.PIPE, stdin=subprocess.PIPE, stderr=subprocess.PIPE) #net use进程 ppp=subprocess.Popen(cmd,shell=True,stdout=subprocess.PIPE, stdin=subprocess.PIPE, stderr=subprocess.PIPE) #copy进程 ipk=a,b,c,str(start1) ip='.'.join(ipk) cmd1=r'net use \\%s\ipc$ "%s" /user:"%s"'%(ip,password,user)+"\n" cmd2=r'cmd /k xcopy /i /s /e /y D:\winxp\*.* \\"%s"\c$\winxp'%ip+"\n" p.stdin.write("ping %s"%ip+"\n") p.stdin.close() #pp.wait() print p.stdout.read() pout=p.communicate()[0] if pout.find('Reply from')>=0: print '(%s)&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&'%h print '* %s 客户端在线!!!'%ip pp.stdin.write(cmd1) pp.stdin.close() #p.wait() ppout=pp.stdout.read() if ppout[143:145]=='命': print "* 成功连接客户端: %s"%ip print '\n' f.write('%s %s 成功连接客户端'%(h,ip)+'\n') f.write('\n') ppp.stdin.write(cmd2) ppp.stdin.close() #ppp.wait() pppout=ppp.stdout.read() if pppout.find('11')==468: f.write('%s %s 成功复制所有文件'%(h,ip)+'\n') print "&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&" print '\n' else: print "文件复制失败" f.write('%s 文件复制失败'%ip) print "&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&" print '\n' else: print "* 客户端:%s连接失败"%ip print '\n' f.write('%s %s 客户端连接失败'%(h,ip)+'\n') f.write('\n') else: print '\n\n' print '(%s)##################################################'%h print '* %s 客户端不在线'%ip print '####################################################' print '\n' f.write('%s %s 客户端不在线'%(h,ip)+'\n') start1=start1+1 h=h+1 if __name__=='__main__': threads=[] if ep >=1: if remain == 0: for i in xrange(0,n): d=start+i*ep endd=start+ep*(i+1)-1 threads.append(threading.Thread(None,target=deploy,args=(d,endd))) else: for i in xrange(0,n): d=start+i*ep endd=start+ep*(i+1)-1 threads.append(threading.Thread(None,target=deploy,args=(d,endd))) threads.append(threading.Thread(None,target=deploy,args=(start+n*ep,end))) else: threading.Thread(None,target=deploy,args=(start,end)) for t in threads: t.start() for t in threads: t.join()

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册