【Python实例】用脚本自动拿一个或多个仿真环境
注1:之前使用的是perl,现在尝试切换到python;
注2:该脚本用于实现自动拿仿真环境,里面应该还有很多不足之处,后续逐渐完善;
注3:假设脚本名字为get_env.py,直接执行脚本,会有两次输入,分别为ll和hl,如果ll=hl,比如均为1,那么最终生成env_1环境;如果hl>ll,比如ll=1,hl=3,则最终生成env_1, env_2, env_3;
资料参考:
(1) https://www.cnblogs.com/heibaimao123/p/16294111.html (可以使用python命令行参数对脚本进行升级)
注1:其实不是很麻烦,在实例脚本中,import sys模块,并且添加ll=int(sys.argv[1])与hl=int(sys.argv[2]);
(2) https://blog.csdn.net/lx_ros/article/details/122811361 (推荐阅读)
实例
注1:11行下面漏掉两行内容,分别为"ll=int("pls enter low limit:")"与"hl=int("pls enter high limit:")";
1 #/usr/bin/python3 2 3 import os 4 5 #设置仿真环境放置的目录位置,该处在脚本中写死,也可以通过微调脚本在仿真命令行输入目录位置; 6 main_work_dir="***" 7 print(main_work_dir) 8 9 #打印信息,说明接下来将会创建env,env的名字是env_*,*是ll到hl之间的数字; 10 #ll为low limit, hl为high limit,后续会需要user在命令行输入; 11 print("env will be created with name-env_*, * is the number from ll to hl!") 12 13 #为了实现打印彩色输出信息而添加的内容; 14 class bcolors: 15 OK ='\033[92m' 16 WARNING ='\033[93m' 17 ERROR ='\033[91m' 18 END ='\033[0m' 19 BOLD ='\033[1m' 20 21 #函数实现跳转到输入参数指定的路径,并打印当前路径; 22 def chdir_print_dir(work_dir): 23 os.chdir(work_dir) 24 work_dir_tmp=os.getcwd() 25 print(work_dir_tmp) 26 27 #函数实现根据输入参数info_type的不同进行不同色彩的打印 28 def colored_print(user_str, info_type): 29 if(info_type=="OK"): 30 start_str=bcolors.OK+bcolors.BOLD 31 end_str =bcolors.END 32 elif(info_type=="WARNING"): 33 start_str=bcolors.WARNING+bcolors.BOLD 34 end_str =bcolors.END 35 elif(info_type=="ERROR"): 36 start_str=bcolors.ERROR+bcolors.BOLD 37 end_str =bcolors.END 38 else: 39 raise Exception("info_type %s is not supported"%info_type) 40 41 for num in range(ll, hl+1): 42 chdir_print_dir(main_work_dir) 43 #下行的***需要用实际的git repo代替 44 os.system("git clone ***"+"env_"+str(num)) 45 colored_print("step1: git clone done!!","OK") 46 chdir_print_dir(main_work_dir+"env_"+str(num)) 47 #下行根据实际仿真环境的获取而有所不同; 48 os.system("git submodule update --recursive --int") 49 colored_print("step2: git submodule udpate done!!", "OK") 50 chdir_print_dir(main_work_dir) 51 colored_print("step3: env-env_%d is created done!"%num,"OK")