如何在subprocess.call中使用整数

时间:2018-03-12 23:15:40

标签: python subprocess qiime

我正在编写一个运行qiime的程序。我需要程序识别用户在命令行上键入的数字,但我认为subprocess.call可能无法判断数字是否为整数。

到目前为止我所拥有的:

# Items to import
import subprocess
import argparse
from sys import argv

#Variables
parser=argparse.ArgumentParser()
parser.add_argument('--trim-forward', type=int, required=True)
parser.add_argument('--trim-reverse', type=int, required=True)
parser.add_argument('--truncate-forward', type=int, required=True)
parser.add_argument('--truncate-reverse', type=int, required=True)
parser.add_argument('--max-ee', type=int, required=True)

# Denoise
cmnd = ['qiime', 'dada2', 'denoise-paired', '--i-demultiplexed-seqs', 'paired-end-demux.qza', '--o-table', 'table.qza', '--o-representative-sequences', 'rep-seqs.qza', '--p-trim-left-f {}'.format(argv[2]), '--p-trim-left-r {}'.format(argv[4]), '--p-trunc-len-f {}'.format(argv[6]), '--p-trunc-len-r {}'.format(argv[8]), '--p-max-ee {}'.format(argv[10])]
print('executing {}'.format(''.join(cmnd)))
res = subprocess.call(cmnd)
print('command terminated with status', res)

运行此程序会返回错误。关于如何告诉subprocess.call这些是整数而不是字符串的任何想法?

谢谢!

1 个答案:

答案 0 :(得分:0)

这实际上不是关于整数/字符串,而是关于使用空格解析选项。

在你所拥有的所有地方

"--some-option {}".format(some_value)

将其更改为:

"--some-option={}".format(some_value)