【Python获取软件当前的配置信息】实现info命令

源码:

# -*- coding: utf-8 -*-
#coding=utf-8
import os
import re
import sys
import datetime

M_name = open('.config')
for line in M_name:
	line_new = line.split(' ')[-1]
	
result = os.popen("svn info")  
res = result.read()
infile_new = open("test2.txt","w")
for line in res.splitlines():
	if "Revision" in line:									#获取版本号	 以SVN_XXX的格式
		Strsvn = line.replace(' ','')			
		Strsvn = Strsvn.replace('Revision','')
		Strsvn = Strsvn.replace(':','')
os.remove("test2.txt")		
infile_new.close()

os.chdir('ModelSelect')
path = os.getcwd()
pattern = re.compile('"(.*)"')
for parent,dirnames,filenames in os.walk('.'):
	for dirname in dirnames:
		if os.path.isdir(dirname):
			dirname_1 = dirname.split('_')[0]
			if str(dirname_1) == str(int(line_new)):
				Model_Select = 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:
									PANEL_NAME = pattern.findall(line)[0]
								if "#define CUSTOMER_IR					" in line:					
									IRName = pattern.findall(line)[0]
								if "#define CUSTOMER_PCB_NAME			" in line:					
									BOARD_NAME = pattern.findall(line)[0]
								if "#define	CUSTOMER_PCB_IC_TYPE 		" in line:					
									ChipID = pattern.findall(line)[0]
Time_str = datetime.datetime.now().strftime('%Y%m%d %H:%M:%S')									
print("\n-------------------- main code config -------------------")
print("**** Model_Select     	                      := %s"%(Model_Select))
print("**** CONFIG_MODEL_BOARD_NAME     	      := %s"%(BOARD_NAME))
print("**** CONFIG_PANEL_TYPE_NAME                   := %s"%(PANEL_NAME))
print("**** ChipID		       		      := %s"%(ChipID))
print("**** Software SVN version	    	      := %s"%(Strsvn))
print("**** Modified Date Time		      	      := %s"%(Time_str))
print("---------------------------------------------------------")
print("SVN version = %s"%(Strsvn))
print("Current Path = %s\n"%(path))

遇到的问题:

line_new = line.split(' ')[-1]  获取的字符串line_new 和 dirname_1 = dirname.split('_')[0]获取到的dirname_1 比较的时候,打印出来是相等的,但是比较的时候显示不相等。

解决:line_new 和 dirname_1两个字符串都先转换成int然后再转为str------>str(int(line_new))   str(int(dirname_1))   

在Makefile中,添加对应执行脚本的命令,使用make info执行脚本

        .
        .
        .
info:
    python info.py

zip:
    python zip.py
        .
        .
        .

猜你喜欢

转载自blog.csdn.net/Beyond_1024/article/details/83573887