使用Python实现Linux命令的批量执行
prodigal用于预测原核生物cds,平常会用来预测核苷酸序列的cds并且翻译成氨基酸序列,但是需要一条一条的执行,量大的话很麻烦,需要一直修改命令。
该软件使用时的命令格式为
prodigal -i /your/inputpath/1234_genomic.fasta -g 11 -a /your/outputpath/1234_prodigal_protein.faa
-i为输入的核苷酸序列文件,-g为密码子表(默认为11),-a为输出的氨基酸序列文件。这里我的习惯是序列文件名1234保持不变,用genomic代表基因组核苷酸序列,用prodigal_protein代表是使用prodigal预测翻译的氨基酸序列。批量执行的时候就需要不断的修改“1234”的内容。
为了进步一简化命令,希望只使用一个用户参数即可执行代码。如:
./prodigal.py -i input_folder #只输出文件夹名称作为用户参数
下面是代码,初学Python,这几行折腾了一下午。
#!/usr/bin/python
#20200829 By fujch Mail fujch@foxmail.com
#This code is for processing prodigal with multiple species
import os
import getopt
import sys
opts,args = getopt.getopt(sys.argv[1:],'-i:',['inputpath='])
for opt_name,opt_value in opts:if opt_name in ('-i','--inputpath'):path1 = '/home/prodigal/input/'+opt_valuepath2 = '/home/prodigal/output/'+opt_value
if not os.path.exists(path2):os.makedirs(path2)#自动创建输出文件夹
files = os.listdir(path1)
for file in files:ifile = os.path.splitext(file)[0]#提取文件名且不带后缀名ifile_str = str(ifile)ofile_str = ifile_str[0:-8]+"_prodigal_protein.faa"os.system("prodigal -i %s/%s -g 11 -a %s/%s" %(path1,file,path2,ofile_str))
代码可能有啰嗦的地方,救急能用就行,哈哈。
可以根据自己的需求修改代码适用不同的软件。
使用Python实现Linux命令的批量执行相关推荐
- python 调用linux命令-四种执行python系统命令的方法
Python中执行系统命令常见的几种方法有 注意:以下实例代码在Python3.5下运行通过. 一.os.system方法 os.system(cmd) 在子终端运行系统命令,可以获取命令执行后的返回 ...
- 使用sshpass在Linux服务器上批量执行脚本
用途描述: 如果Linux服务器未配置免密登录,每次使用ssh执行远程脚本时,都需要输入密码. 使用sshpass命令可以在多个Linux服务器上批量执行脚本,操作步骤如下: 1.安装sshpass ...
- python实现linux命令输出两列_Python实现Linux命令xxd -i功能
def Xxdi(): #解析命令行选项及参数 ([base, cols, strip], [inFile, outFile]) = ParseOption() import os if os.pat ...
- linux多个sh 同时执行命令,sh, 批量执行Linux命令
step 1:创建一个sh批处理命令文件 # vim /etc/batch_ssh/install_redis.sh step 2:给当前用户,能够执行sh脚本权限 # chmod install_r ...
- python 调用linux命令-Python 执行Linux系统命令的N种方法
前言: 很多时候我们会用到python去调用外部工具/命令去实现某种功能. I. os https://docs.python.org/2/library/os.html os.system 执行流程 ...
- python 调用linux命令-Python执行Linux系统命令的4种方法
(1) os.system 仅仅在一个子终端运行系统命令,而不能获取命令执行后的返回信息 复制代码代码如下: system(command) -> exit_status Execute the ...
- Linux终端如何批量执行多条命令?
首先,建立后缀格式为.sh的文件,比如我要批量执行清除进程残留的共享内存.队列以及信号的命令.权且命名文件为clear.sh,文件如下: 其次,文件中写入如下命令,注意不要忘记分号,分号可以保证前面命 ...
- python 调用linux命令-Python调用Linux bash命令
import subprocess as sup # 以下注释很多(为了自己以后不忘), 如果只是想在python中执行Linux命令, 看前5行就够了 # 3.5版本之后官方推荐使用sup.run( ...
- Linux命令行上执行操作,不退回命令行的解决方法
问题描述: 如果你现在登录Centos执行了某个操作,但是操作一直占用命令行,命令行显示的也都是这个命令相关的操作,我想做其它事情 ,该怎么办呢 ? 解决方法: 根据<Linux命令行与Shel ...
最新文章
- php imagemagick 漏洞,ImageMagick漏洞EXP简易生成脚本
- DataGridView控件60招(一)
- linux下更改MySQL数据库存储目录
- jenkins调整jdk版本不生效的解决办法
- vue axios POST请求中参数以form data和request payload形式的原因
- django rest framework 过滤 lim分页
- NOIP模拟测试38「金·斯诺·赤」
- [转载] java重写toString()方法
- oracle xp安装详细步骤
- ps42k20服务器出现问题_天高客户端访问软件出现“服务器操作系统原因”问题解决方法...
- NekoHTML 学习笔记
- 微信开放平台接入支付后不显示头像
- Whitelabel Error Page 的原因
- 算法题思路总结和leecode继续历程
- matlab添加旁白,在MATLAB中向已知信号添加高斯白噪声 (转载)
- 推荐书籍:WebRTC技术详解 从0到1构建多人视频会议系统
- 万里长征之测试第一步
- airdrop无法点_AirDrop无法正常工作? 这是解决方法
- 【瞎搞】 ZOJ 1546 Fillword
- Redis相关命令及使用场景介绍
热门文章
- 基于单片机的汽车灯光设计
- 1dB压缩点(1dB Compression Point (P1dB Point))
- 2012第50周星期一自制力网摘
- 东华大学2020考研计算机复试准备上机题解析答案_基础篇(1-29)
- 十一届蓝桥模拟赛 元素之间最大的元素距离 JAVA
- LZW字典编码(文末附python实现代码)
- vue2.0怎么渲染html,vue采坑之——vue里面渲染html 并添加样式
- Command “python setup.py egg_info“ failed with error code 1 in /tmp/pip-buil
- 内网安全,站在十年的路口
- 总结一波 Redis 面试题,收藏起来!