【Python】打包压缩软件,命名软件名为软件的版型、遥控等信息

源代码:

# -*- coding: utf-8 -*-
#coding=utf-8

'''
						打包软件脚本
脚本说明:打包后压缩文件的命名为(版型、屏参、遥控名、版本号、编译时间等信息)	
注意事项:执行脚本时需要带该软件的配置文件的编号	
执行方法:python zip.py XXX				

'''			
import zipfile
import sys
import os
import re
import datetime

#==========================================================================================
def zip_files( files, zip_name ):
    zip = zipfile.ZipFile(zip_name,'w',zipfile.ZIP_DEFLATED)
    for file in files:
        print ('compressing', file)				#压缩函数
        zip.write( file )
    zip.close()
    print ('compressing finished')
#==========================================================================================
result = os.popen("svn info")  
res = result.read()
infile_new = open("test.txt","w")
for line in res.splitlines():
	if "Revision" in line:									#获取版本号	 以SVN_XXX的格式
		Strsvn = line.replace(' ','')			
		Strsvn = Strsvn.replace('Revision','svn')
		Strsvn = Strsvn.replace(':','_')	
infile_new.close()

#==========================================================================================
TimeStr = open('./kernel/android/nougat/out/target/product/RealtekATV/system/build.prop')
for line in TimeStr:
	if "ro.build.version.incremental=" in line:				
		Tstr = line.split('.')[-1]
		Tstr = str(int(Tstr))
	
path1 = os.getcwd()											#获取编译时间
time_str = datetime.datetime.now().strftime('%Y%m%d')
os.chdir('ModelSelect')
str_ = sys.argv[1]
#==========================================================================================
pattern = re.compile('"(.*)"')

for parent,dirnames,filenames in os.walk('.'):
	for dirname in dirnames:
		if os.path.isdir(dirname):
			if str_ in dirname:
				os.chdir(dirname)

for parent,dirnames,filenames in os.walk('.'):
	for filename in filenames:
		if filename == "customer.h":
			FileName = open('customer.h','r+')				#获取命名所需的屏参、遥控等参数
			for line in FileName:
				if "#define CUSTOMER_PANEL				" in line:
					PanName = pattern.findall(line)[0]
				if "#define CUSTOMER_IR					" in line:					
					IRName = pattern.findall(line)[0]
				if "#define CUSTOMER_PCB_NAME			" in line:					
					PCBName = pattern.findall(line)[0]
				if "#define	CUSTOMER_PCB_IC_TYPE 		" in line:					
					ICName = pattern.findall(line)[0]
#==========================================================================================					
os.chdir(path1)					
Newname = "[RTD"+ str(PCBName) + "]_[" + "Model_" + str(str_)+ "]_" + str(PanName)+ "_" + str(IRName) + "_" + str(Strsvn) + "_"+ str(time_str) + str(Tstr)
os.chdir("image_file_creator")		
files = ['./install.img']#文件的位置
zip_file = Newname+".zip"#压缩包名字
zip_files(files, zip_file)

代码笔记:

1. 压缩函数

def zip_files( files, zip_name ):
    zip = zipfile.ZipFile(zip_name,'w',zipfile.ZIP_DEFLATED)
    for file in files:
        print ('compressing', file)				#压缩函数
        zip.write( file )
    zip.close()
    print ('compressing finished')

2. 替换字符串中的某个字符

Strsvn = Strsvn.replace(':','_')

':'替换成 '_'

3. 获取当前时间

time_str = datetime.datetime.now().strftime('%Y%m%d')

在使用open函数时,一定要主要注意路径!!!

在使用open函数时,一定要主要注意路径!!!

在使用open函数时,一定要主要注意路径!!!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值