为部门写的小工具(打包成exe), 随着时间的推移,难免会经常进行修改(或是解决一些bug,或是做一些优化,或是添加一些新功能),然后放在指定的Server pc位置,当有同学打开本地此工具时,会自动check是否有新版本,如有新版本就提示并自动更新.

此脚本的功能就是实际脚本工具的自动升级,做个记录.

import os, subprocess, time, socket, syslocal_path = sys.argv[0]
server_ip_addr = '172.26.1.1'
version = time.strftime('v1.%Y%m%d.%H%M%S', time.localtime(os.stat(local_path).st_mtime))print(f'{local_path}\n{server_ip_addr}\n{version}')# 用IP的开头判断是否出差在外。
def is_company_network():try:s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)address = ("8.8.8.8", 80)s.connect(address)sockname = s.getsockname()ip = sockname[0]port = sockname[1]finally:s.close()if ip.startswith('172.26'):return Truereturn False# 自动升级
def check_upgrade():if not is_company_network():returnglobal version, server_ip_addr# local_path = sys.executablelocal_path = sys.argv[0]# 本地存在升级bat就先del掉. path_bat = f'{os.path.split(local_path)[0]}\\upgrade.bat'os.chdir(os.path.split(local_path)[0])if os.path.exists(path_bat):os.remove(path_bat)server_path = f'\\\\{server_ip_addr}\F\\Script\\small_tool.exe'# 判断server路径是否存在,如不存在,可访问备用路径来升级if not os.path.exists(server_path):server_ip_addr = 'Pcl5080004'local_modify_time = os.stat(local_path).st_mtimetry:server_modify_time = os.stat(server_path).st_mtimenew_version = time.strftime('v1.%Y%m%d.%H%M%S', time.localtime(server_modify_time))except:new_version·= versionif version < new_version:os.system('cls')print(f'Local Path: {local_path}')print(f'Server Path: \\\\{server_ip_addr}\\F\\Script\\small_tool.exe')print('\n\n有新版本,请使用新版本..')print(f'\n\n当前版本∶{version}\n新版本为∶{new_version}')print(f'\n\n更新内容如下∶')with open(f'\\\\{server_ip_addr}\\F\\0ther\\Gametool修改记录.txt', 'r') as f:for line in f.readlines():if line.strip() == '':breakprint(line, end='')input('\n\n升级过程将耗时8s左右, 请等待升级后的ap自动拉起.\n回车后将自动升级:')# 开始升级bat_file = open("upgrade.bat", 'w')# 关闭bat脚本的输出upgrade_bat = "eecho·off\n"# 3秒后删除旧程序(3秒后程序己运行结束,不延时的话,会提示被占用,无法删除)upgrade_bat += "timeout·/t 3\n"# copy新版本并覆盖旧版本upgrade_bat += f"XC0PY \\\\{server_ip_addr}\\F\\Script\\small_tool.exe {os.path.split(local_path)[0]}·/y\n"# 启动新程序upgrade_bat += fr"start·{local_path}" bat_file.write(upgrade_bat)bat_file.close()subprocess.Popen("upgrade.bat")# 进行升级,退出此程序sys.exit()

python脚本如何自动升级?相关推荐

  1. 基于esky实现python应用的自动升级

    一.esky介绍 Esky is an auto-update framework for frozen Python applications. It provides a simple API t ...

  2. python应用如何实现升级_基于esky实现python应用的自动升级详解

    基于 esky 实现 python 应用的自动升级 一. esky 介绍 Esky is an auto-update framework for frozen Python applications ...

  3. Python实现简单自动升级exe程序版本并自动运行,适合Python自动化运维。

    Python自动升级exe程序版本并自动运行,Python自动更新脚本,适合Python自动化运维. 一.此教程是使用bat脚本+NFS实现自动更新.(也可以使用FTP或者使用html实现自动更新) ...

  4. Linux下使用crontab命令以及Python脚本实现自动签到

    转载:http://www.cnblogs.com/spxcds/p/5375192.html 关于这一部分, 我首先介绍下如何实现使用Python脚本实现签到功能其实,linux下有个命令叫做cur ...

  5. python脚本实现自动刷王者荣耀金币

    疫情期间,一些朋友可能会选择游戏打发时间,我也是其中之一.为了快速获得金币,购买英雄,我百度了一些参考文章,结合编程实现实际,作此篇,帮助即使小白,只要会用python IDE,也能实现自动刷金币. ...

  6. 教你写个简单好用的Python脚本一键自动整理文件非常适合办公用~

    导语 小编以前经常把下载的东西放在桌面或者"下载"文件夹中,使用后再也没管它,久而久之文件夹就变得乱七八糟,再整理的时候非常痛苦,巴不得有一个自动化的工具帮我归类文档. 不知道你是 ...

  7. win10定时执行python脚本实现自动订餐

    Python脚本自动订餐 场景 WIN10 设置定时任务 脚本(chorme浏览器) 场景 公司搞了个订餐系统,每天过了10点就不让订了.搞个pyhton脚本自动订餐,省心省力还省钱! WIN10 设 ...

  8. 用Python脚本一键自动整理文件,轻松办公

    嗨嗨,大家下午好~ 我是小圆 因为自己对于电脑上的文件不怎么爱整理,经常把下载好的东西就随意的放在桌面上或者"下载"文件夹中,就使用过后再也没去管它了.久而久之,文件夹就变得乱七八 ...

  9. python自动发邮件 foxmail_使用 python 脚本实现自动监控网站并发送邮件告警

    今天中午的时候,网站莫名奇妙地出现无法访问的现象,持续了两个多小时,等发现问题的时候立刻重启了服务器才恢复正常.为防止同样的事情再次发生,所以就想编写一个自动化脚本来监控网站服务,今天为大家分享一下使 ...

最新文章

  1. 文件数据分析制作过程【1】
  2. android notification点击无效,Notification.addAction在Android O中无效
  3. codeblocks常用配置
  4. UVa 814 - The Letter Carrier's Rounds
  5. linux下的makefile编程
  6. windows文件保护_Windows系统下媲美时间机器的系统备份工具,统统免费
  7. 最高月薪25K!一周收到7个15K以上的offer,他是如何做到的?
  8. java服装销售系统课程设计_毕业论文(设计)基于javaweb的服装销售管理系统的设计与实现.doc...
  9. 飞思卡尔全国总决赛智能车决赛赛道分析
  10. 【直播礼物特效】vap原理图理解
  11. 网吧还原软件测试简历,测试人员-斯普林网吧客户服务系统.doc
  12. 2020年茶艺师(初级)考试题及茶艺师(初级)考试题库
  13. 树莓派制作遥控小车教程
  14. 人工智能实践:Tensorflow笔记 Class 5:卷积神经网络
  15. JWT — JWT原理解析及实际使用
  16. Mybatis原理——执行原理详解
  17. 这10款数据可视化软件工具免费好用
  18. mysql经度纬度类型_在MySQL数据库中存储纬度/经度时使用的理想数据类型是什么?...
  19. 【mysql innodb索引结构B+树】
  20. 那些高效的机器学习研究者,需要养成什么样的习惯?吴恩达等这样建议

热门文章

  1. GIS设备gim模型要求
  2. Mysql8【有与无】M12.函数和运算符
  3. 怎么剪gif图的尺寸?
  4. 已修复最新固件问题Surface Pro 6 安装黑苹果15.6 完美版,触控板、显卡、声音、USBWiFi驱动,一步到位懒人必备--(原创)杨泽鹏
  5. python有趣小程序代码-有趣的python小程序
  6. Balun变换器基础知识
  7. ubuntu server 10.4下Apache2的三种虚拟主机的实现
  8. 单片机程序死机原因查找方法
  9. 曝光补偿与感光度的区别在哪里
  10. 荣耀Magic5至臻版摄像头参数怎么样 荣耀Magic5至臻版电池容量