包裹在 os.system 中的命令被忽略

command wrapped in os.system is ignored

(on os x 10.10.1)我正在尝试在 python 脚本中使用双端合并 (Casper)。我正在使用 os.system(不想使用 subprocess 或 pexpect 模块)。在我的脚本中,这是行不通的行:

os.system("casper %s %s -o %s"%(filein[0],filein[1],fileout))
#filein[0]: input file 1
#filein[1]: input file 2
#fileout: output prefix (default==casper)

启动我的脚本后,仅解释此命令的前两个字符串参数,但不解释第三个字符串参数,从而导致输出文件具有默认前缀名称。由于我的函数正在遍历大量 fastq 文件,因此它们全部合并到一个 "casper.fastq" 文件中。 我试图弄乱命令中不起作用的部分(在 -o 之后),放入无意义的字符串,但它仍然执行没有错误和默认输出,这里是 "messed up line":

os.system("casper %s %s -ldkfnlqdskgfno %s"%(filein[0],filein[1],fileout))

任何人都可以帮助理解到底发生了什么吗?

  1. 在执行之前打印命令以检查您的命令是否正确包装(例如需要引用文件名)
  2. 直接执行你假定的输出命令,看看是否被误解。