使用Python生成Shell命令,批量执行程序代码解析
时间:2022-07-27
本文章向大家介绍使用Python生成Shell命令,批量执行程序代码解析,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
本文主要研究的是Linux系统中使用Python生成Shell命令,批量执行程序的相关内容,具体如下。
近日经常遇到在Linux shell中批量执行相似命令的情况。比如执行如下命令:
gifsicle --delay=100 gif/App_1_hour_*_down.gif > combine_gif/App_1_hour_down.gif
gifsicle --delay=100 gif/App_1_hour_*_up.gif > combine_gif/App_1_hour_up.gif
gifsicle --delay=100 gif/App_2_hour_*_down.gif > combine_gif/App_2_hour_down.gif
gifsicle --delay=100 gif/App_2_hour_*_up.gif > combine_gif/App_2_hour_up.gif
gifsicle --delay=100 gif/App_3_hour_*_down.gif > combine_gif/App_3_hour_down.gif
gifsicle --delay=100 gif/App_3_hour_*_up.gif > combine_gif/App_3_hour_up.gif
gifsicle --delay=100 gif/App_4_hour_*_down.gif > combine_gif/App_4_hour_down.gif
gifsicle --delay=100 gif/App_4_hour_*_up.gif > combine_gif/App_4_hour_up.gif
gifsicle --delay=100 gif/App_5_hour_*_down.gif > combine_gif/App_5_hour_down.gif
如果手动输入,错误率高,时间成本大,效率非常低下。使用Shell编程很容易批量处理上述程序,但如果不熟悉Shell编程,亦可以轻松实现。关键是思维的转变。我们可以使用Python将上述命令写到一个文件里,然后从文件内容拷贝到#!/bin/bash开头的.sh文件中即可构建出所需的Shell脚本文件。生成上述命令的Python代码如下:
output = open("C:Python34shell_commands.txt", "w")
for i in range (1, 21):
wr_line_1 = "gifsicle --delay=100 gif/App_" + str(i) + "_hour_*_down.gif > combine_gif/App_" + str(i) + "_hour_down.gif" + "n"
wr_line_2 = "gifsicle --delay=100 gif/App_" + str(i) + "_hour_*_up.gif > combine_gif/App_" + str(i) + "_hour_up.gif" + "n"
output.writelines(wr_line_1)
output.writelines(wr_line_2)
output.close()
总结
以上就是本文关于使用Python生成Shell命令,批量执行程序代码解析的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!
- 碎片化 | 第四阶段-42-校验验证码-视频
- Angularjs中UI Router超级详细的教程{{上}}
- 【LEETCODE】模拟面试-120- Triangle
- Spring Cloud Edgware新特性之四:Zuul routes端点功能增强
- Spring Cloud Edgware新特性之三:使用配置属性自定义Feign的行为
- 碎片化 | 第四阶段-43-struts2拦截器interceptor-视频
- Spring Cloud Edgware新特性之二:如何配置Zuul的Hystrix线程池
- 碎片化 | 第四阶段-44-struts2注解使用-视频
- Spring Cloud Edgware新特性之:解决Eureka中Jersey 1.x版本过旧的问题-不使用Jersey
- 如何自定义微服务的Instance ID
- 怎样做情感分析
- Python|编写自己的类
- 碎片化 | 第四阶段-45-session为空问题解决-视频
- 以后有机会写框架用得着的
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- JavaScript 交换值的奇思妙想
- Docker体验(一)
- (二)Hadoop集群配置安装
- 压缩视频
- (四)Java读写文件,合并成新的文件
- 【小白学金融】—— 用 STATA 计算 CAR 值
- 3行核心CSS代码的rate评分组件,秀到你怀疑人生
- 用 Rust 和 N-API 开发高性能 NodeJS 扩展
- 教你 Linux 免密登录配置
- Linux阅码场 - Linux内核月报(2020年08月)
- 事务的本质和死锁的原理
- 深度神经网络conda环境下载
- 隧道构建:端口转发的原理和实现
- SAP Spartacus注入自定义的CurrentProductService
- Redis系列(十一)redis命令全集