1

我正在编写一个运行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 这些是整数而不是字符串的任何想法?

谢谢!

4

1 回答 1

0

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

在你拥有的所有地方

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

将其更改为:

"--some-option={}".format(some_value)
于 2018-03-12T23:18:12.047 回答