Python学习——1.文件的更新

说明:通过比较源目录和地址目录文件夹下的VXX,ZIP文件来确定版本号,如果版本号低,就从源目录copy zip文件到地址目录,并且解压,然后删除地址目录的旧的版本的zip文件。

import shutil
import os
import zipfile
#source :更新文件的目录
#dst:应用安装目录
class fileupdate:

	def __init__(self,source,dst):
		self.source=source
		self.dst=dst

	def check_version(self,source):  #检查目标地址的版本号,并返回版本号,文件路径
		version=-1
		path="NA"
		for i in os.listdir(source):
			if os.path.splitext(i)[1]==".zip":
				#print (i)
				if version<int((i[1:3])):
					version=int((i[1:3]))
					path=i
		return [version,path]

	def check_update(self):
		new_version,new_path=self.check_version(self.source)
		old_version,old_path=self.check_version(self.dst)
		if(new_version>old_version):
			print ("当前版本号:V"+str(old_version)+"最新版本号:V"+str(new_version)+"需要更新版本")
			return 1
		else:
			print ("已经是最新版本")
			return 0

	def update(self):
		new_version,new_path=self.check_version(self.source)
		old_version,old_path=self.check_version(self.dst)
		shutil.copyfile(self.source+"\\"+new_path,self.dst+"\\"+new_path)	  #把源代码copy从source拷贝到dst
		print("把源代码的ZIP文件解压缩")
		f = zipfile.ZipFile(self.dst+"\\"+new_path,'r')
		for file in f.namelist():
			f.extract(file,self.dst)
		print("删除旧的安装zip")
		for i in os.listdir(self.dst):
			if os.path.splitext(i)[1]==".zip":	
				if i!=new_path:
					os.remove(self.dst+"\\"+i)
		print("更新完成")			

if __name__ == '__main__':
     sourcepath="d:\\1"
     dstpath="d:\\software"
     myupdate=fileupdate(sourcepath,dstpath)
     if(myupdate.check_update()==1):
     	myupdate.update()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值