Python 使用子流程和.format

Python 使用子流程和.format,python,string,Python,String,到目前为止,我有以下代码: from subprocess import call a, b = 10000000, 10000100 call('samtools faidx file.fa chr22:{}-{}'.format(a, b), shell = True) 但是,当我运行它时,分配给a和b的数字似乎不像格式那样进入{}括号。 我在这里使用的格式是错误的,还是我的代码本身是错误的 (file.fa是一个保存22号染色体DNA序列的文件)这是什么语言?看起来像python@Tal

到目前为止,我有以下代码:

from subprocess import call
a, b = 10000000, 10000100
call('samtools faidx file.fa chr22:{}-{}'.format(a, b), shell = True)
但是,当我运行它时,分配给
a
b
的数字似乎不像格式那样进入
{}
括号。 我在这里使用的格式是错误的,还是我的代码本身是错误的


(file.fa是一个保存22号染色体DNA序列的文件)

这是什么语言?看起来像python@TallChuck事实上,但你永远也不能这么肯定,也就是说,这很容易受到shell注入攻击——如果你的
a
b
可能被敌对实体控制,它们可能会运行任意代码。不要使用
shell=True
,而是使用
调用(['samltools','faidx','file.fa','chr22:{}-{}.format(a,b)])
@AndyLee,我们需要知道
samtools faidx
做了什么才能知道这是否是正确的行为。你能想出一个更简单的复制机吗<代码>a=100;b=200__例如,导入(子进程)调用(['printf','\n',chr22:{}-{}.format(a,b)],不需要
samtools
,也不需要POSIX平台上还没有的任何东西来运行,并在stdout上打印明确的内容。请看a栋的文档。