关于将shell命令插入到python中

时间:2011-06-26 21:23:29

标签: python shell

我在python脚本中插入了一些shell命令,如下所示:

#!/usr/bin/python

import os,sys,re
import gzip
import commands

path = "/home/x/nearline"

for file in os.listdir(path):
  if re.match('.*\.recal.fastq.gz', file):
    fullpath = os.path.join(path, file)
    result = commands.getoutput('zcat fullpath |wc -l')
    numseqs = int(result)/4.0
  print numseqs

zcat fullpath |wc -l是插入的shell命令。

问题是,我在这里为所有fullpath个文件定义了fastq,但在置于' '之后,似乎此fullpath无效。我该如何解决这个问题?

3 个答案:

答案 0 :(得分:5)

您必须将字符串与变量的值连接:

result = commands.getoutput('zcat ' + fullpath + ' |wc -l')

答案 1 :(得分:3)

fullpath是一个变量,你需要将它与其他命令连接起来:

result = commands.getoutput('zcat ' + fullpath + ' |wc -l')

答案 2 :(得分:1)

尝试

commands.getoutput('zcat ' + fullpath + ' |wc -l')

因为python变量不会在字符串中自动展开。