使用子进程在python脚本中使用sed和变量

时间:2014-06-02 11:19:18

标签: python sed

我想在python脚本中使用sed或tr来在fastafile中引入ID。

我试过了,但它说的是syntaxError:

  

subprocess.call(['sed \'s /> />'+ identifier +'/ g \'<'+ path +'> transcriptome')],shell = True)

其中identifier和path是变量。它必须是循环的一部分,对于每个ID和引入的路径,它必须改变典型的fasta格式:> isotig123到> IDisotig123。每一个都有相应的ID。

感谢。

2 个答案:

答案 0 :(得分:0)

试试这个

subprocess.call(['sed -e "s/>/>'+identifier+'/g" '+path+' >transcriptome')],shell=True)
  • 围绕sed操作
  • \'替换为"
  • <替换为直接文件参考
  • 添加-e以使用操作命令

假设标识符不包含您样本中的特殊字符&\/

答案 1 :(得分:0)

sed命令及其参数之间缺少whitspace。试试这个:

subprocess.call(['sed \'s/>/>'+identifier+'/g\' <'+path+'>transcriptome')],shell=True)