【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")
【Python实例】用脚本自动拿一个或多个仿真环境的更多相关文章
- jmeter压力测试的简单实例+badboy脚本录制(一个简单的网页用户登录测试的结果)
JMeter的安装:在网上下载,在下载后的zip解压后,在bin目录下找到JMeter.bat文件,双击就可以运行JMeter. http://jmeter.apache.org/ 在使用jmeter ...
- python(或BAT脚本)自动执行adb shell以后的命令
最近在用python做一个小工具,自动执行一些adb shell命令,使用subprocess.Popen来实现. 不过遇到个问题就是执行adb shell后就无法执行后面adb shell里的命 ...
- Python实现插件机制——自动import一个目录下的所有.py文件
假设有这样一个目录结构: /src main.py /plugins __init__.py a.py ...
- Golang bash脚本自动创建一个go工程
原作者的代码里面,存在智能引号问题,所以他的代码并不能正常运行: 这个是我微调后的版本. 代码如下: #!/bin/bash #————————————– # Module : mk_go_pro.s ...
- docker安装 之 ---CentOS 7 系统脚本自动安装
[使用脚本自动安装] 在测试或开发环境中Docker官方为了简化安装流程,提供了一套便捷的安装脚本,CentOS系统上可以使用这套脚本安装: $ curl -fsSL get.docker.com - ...
- 如何手动写一个Python脚本自动爬取Bilibili小视频
如何手动写一个Python脚本自动爬取Bilibili小视频 国庆结束之余,某个不务正业的码农不好好干活,在B站瞎逛着,毕竟国庆嘛,还让不让人休息了诶-- 我身边的很多小伙伴们在朋友圈里面晒着出去游玩 ...
- Python实例浅谈之五Python守护进程和脚本单例运行
一.简介 守护进程最重要的特性是后台运行:它必须与其运行前的环境隔离开来,这些环境包括未关闭的文件描述符.控制终端.会话和进程组.工作目录以及文件创建掩码等:它可以在系统启动时从启动脚本/etc/rc ...
- 第一个python实例--监控cpu
#第一个python实例:监控cpu #/bin/bash/env Python from __future__ import print_function from collections impo ...
- python实现博客自动刷点击脚本
#A Auto-Visit Web Site Tool import urllib import time import random print "Auto Click the WebPa ...
- 迁移到MSYS2 与 Qt 工具链注意的几个事情(g++在链接时,符号依赖项查找遵循从左至右的顺序,但qmake会自动合并造成错误。使用脚本给Mingw32-make创造出一个局部的VC编译环境)
Microsoft Visual Studio 2015社区版提供了强大的开发体验,且 Qt 提供了预编译版本.然而,由于客户提出兼容Windows XP ~ Windows 8.1 这样宽泛的环境要 ...
随机推荐
- Linux提权之:利用capabilities提权
Linux提权之:利用capabilities提权 目录 Linux提权之:利用capabilities提权 1 背景 2 Capabilities机制 3 线程与文件的capabilities 3. ...
- 常用的"小脚本"-json数据处理
小背景: 我们公司项目中的小脚本是一些工具类,比如常用的是MapUtil工具类的一些方法 写公司的MapUtil工具类的方法要注意,方法名的命名,因为方法名,在公司的项目的某个业务流程有对方法名的进行 ...
- 图形学101 3 transform
2d中都可以写成xy 与矩阵乘以 xy的关系 齐次坐标
- R包本地安装方法
问题 需要安装一个R的测试包 但是这个包没有在cran中 也没有在biomanager中 于是决定使用devtools-github安装 遇到问题 无法下载github上的R包 策略 使用local方 ...
- vue框架08 vue3
vue3的介绍 # vue项目的版本,新项目使用vue3,部分老项目使用vue2 # vue3的变化 1.性能的提升 - 打包大小减少41% - 初次渲染快55%,更新渲染块133% - 内存减少54 ...
- 如何利用fooview实现钉钉自动打卡
我们平常遇到需要钉钉打卡的那种公司,经常要抢时间不敢晚起,有的公司还要扣钱,这样就很难受.本文教你一种行之有效的办法实现钉钉自动打卡. 有些人可能会用什么虚拟定位之类的工具,但是这种是很容易被钉钉发现 ...
- 上传图片到Mongo数据库;从Mongo数据库下载图片显示到前端
/** * 上传一个图片文件,保存到mongo数据库中 * @param doc * @param parent 文件所在的目录 * @param request * @return */ @Post ...
- LinuxK8S集群搭建一(Master节点部署)
系统环境: CentOS 7 64位 准备工作: 通过虚拟机创建三台CentOS服务器,可参照之前的文章:Windows10使用VMware安装centos192.168.28.128 --maste ...
- C++ 手动实现队列(queue) (课后作业版)
#include <iostream> using namespace std; template <typename T> class Queue { public: Que ...
- mysql误删数据恢复
1.查看binlog是否开启# log_bin是ON,就说明打开了 OFF就是关闭状态,以下操作,只有为 ON 时有效.show variables like 'log_bin';2.找到binlog ...