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

【Python实例】用脚本自动拿一个或多个仿真环境的更多相关文章

  1. jmeter压力测试的简单实例+badboy脚本录制(一个简单的网页用户登录测试的结果)

    JMeter的安装:在网上下载,在下载后的zip解压后,在bin目录下找到JMeter.bat文件,双击就可以运行JMeter. http://jmeter.apache.org/ 在使用jmeter ...

  2. python(或BAT脚本)自动执行adb shell以后的命令

    最近在用python做一个小工具,自动执行一些adb shell命令,使用subprocess.Popen来实现.   不过遇到个问题就是执行adb shell后就无法执行后面adb shell里的命 ...

  3. Python实现插件机制——自动import一个目录下的所有.py文件

    假设有这样一个目录结构: /src          main.py          /plugins                __init__.py                a.py  ...

  4. Golang bash脚本自动创建一个go工程

    原作者的代码里面,存在智能引号问题,所以他的代码并不能正常运行: 这个是我微调后的版本. 代码如下: #!/bin/bash #————————————– # Module : mk_go_pro.s ...

  5. docker安装 之 ---CentOS 7 系统脚本自动安装

    [使用脚本自动安装] 在测试或开发环境中Docker官方为了简化安装流程,提供了一套便捷的安装脚本,CentOS系统上可以使用这套脚本安装: $ curl -fsSL get.docker.com - ...

  6. 如何手动写一个Python脚本自动爬取Bilibili小视频

    如何手动写一个Python脚本自动爬取Bilibili小视频 国庆结束之余,某个不务正业的码农不好好干活,在B站瞎逛着,毕竟国庆嘛,还让不让人休息了诶-- 我身边的很多小伙伴们在朋友圈里面晒着出去游玩 ...

  7. Python实例浅谈之五Python守护进程和脚本单例运行

    一.简介 守护进程最重要的特性是后台运行:它必须与其运行前的环境隔离开来,这些环境包括未关闭的文件描述符.控制终端.会话和进程组.工作目录以及文件创建掩码等:它可以在系统启动时从启动脚本/etc/rc ...

  8. 第一个python实例--监控cpu

    #第一个python实例:监控cpu #/bin/bash/env Python from __future__ import print_function from collections impo ...

  9. python实现博客自动刷点击脚本

    #A Auto-Visit Web Site Tool import urllib import time import random print "Auto Click the WebPa ...

  10. 迁移到MSYS2 与 Qt 工具链注意的几个事情(g++在链接时,符号依赖项查找遵循从左至右的顺序,但qmake会自动合并造成错误。使用脚本给Mingw32-make创造出一个局部的VC编译环境)

    Microsoft Visual Studio 2015社区版提供了强大的开发体验,且 Qt 提供了预编译版本.然而,由于客户提出兼容Windows XP ~ Windows 8.1 这样宽泛的环境要 ...

随机推荐

  1. 首个比较研究表明维持期强柱患者减量续用TNFi疗效尚佳且药费省

    首个比较研究表明维持期强柱患者减量续用TNFi疗效尚佳且药费省 Zavada J, et al. Ann Rheum Dis. 2016,75: 96-102. 电邮发布日期: 2016年5月4日 关 ...

  2. nodejs 接收参数,js前端传参方法

    nodejs // 接口:查询检测结果 req.query接收 router.get('/getDetectionResult', (req, res) => { console.log(req ...

  3. Canvas:绘制文本

    基础 画布除了绘制图形以外还可以绘制文本,画布中的文本可以设置字体大小.字体格式.对齐方式(横向和纵向对齐方式),并且还可以制作很炫酷的文本,比如渐变文字. 文本有以下三个属性,控制文本的字体大小.字 ...

  4. LeetCode-1705 吃苹果的最大数目

    来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/maximum-number-of-eaten-apples 题目描述 有一棵特殊的苹果树,一连 ...

  5. springboot跳转页面404的问题

    今天测试的时候出现了这个问题: Cannot forward to error page for request [/] as the response has already been commit ...

  6. YML

    一.YML语法 1.约定 k: v 表示键值对关系,冒号后面必须有一个空格 使用空格的缩进表示层级关系,空格数目不重要,只要是左对齐的一列数据,都是同一个层级的 大小写敏感 缩进时不允许使用Tab键, ...

  7. APP压力稳定性测试-Monkey

    一.Monkey工具简介 1.monkey的来源: Monkey是一个命令行工具,使用安卓调试桥(adb)来运行它,模拟用户:触摸屏幕.滑动Trackball.按键等随机事件流来对设备上的程序进行压力 ...

  8. 硬件监控:grafana+prometheus+node_exporter

    一.前期准备: grafana:前端展示平台,没有数据存储功能,但是,它有不同的展示模板,然后,把后端数据库中提供的数据,进行展示 -->展示数据 prometheus(普罗米修斯):时序数据库 ...

  9. vscode cmake工程launch和task文件设置

    1.launch.json文件基本设置 { // Use IntelliSense to learn about possible attributes. // Hover to view descr ...

  10. CF1744F MEX vs MED

    个人思路: 条件可以转化成长度为 \(x\) 的区间需要包含 \([0,\lfloor \frac{(x-1)}{2} \rfloor]\). 我们从小到大枚举每一个数 \(i\),计算长度为 \(i ...