我在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
无效。我该如何解决这个问题?
答案 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变量不会在字符串中自动展开。