0
當我運行命令子過程調用提供了不正確的參數相比,「」。加入()
subprocess.call(['intersectBed','-u','-a',out_snv_filter,'-b',cds,'>',out_cds],shell=True)
我得到彙報的解釋爲intersectBed
的幫助菜單。
但是當我運行
>>> ' '.join(['intersectBed','-u','-a',out_snv_filter,'-b',cds,'>',out_cds])
'intersectBed -u -a test/test.out.snv.filter -b gencode7.cds.bed > test/test.out.cds'
$ intersectBed -u -a test/test.out.snv.filter -b gencode7.cds.bed > test/test.out.cds
程序正常運行。這裏有什麼不同?
drop'shell = True' – jfs
如果我刪除shell = True,那麼'>'stdout管道將不起作用。 –
使用list參數和'shell = True'是不正確的(含義不同:第一項是shell命令,其餘的是shell的參數,我不認爲這是你想要的) – jfs