我正在编写一个运行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这些是整数而不是字符串的任何想法?
谢谢!
答案 0 :(得分:0)
这实际上不是关于整数/字符串,而是关于使用空格解析选项。
在你所拥有的所有地方
"--some-option {}".format(some_value)
将其更改为:
"--some-option={}".format(some_value)