【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")

 

posted on 2022-07-04 13:35  _见贤_思齐  阅读(125)  评论(0编辑  收藏  举报

导航