为多个参数接受多个值会导致意外结果
Accepting more than one value for more than one argument causes unexpected result
我有以下文档 __doc__
:
"""gene_sense_distribution_to_csv
Usage:
gene_sense_distribution_to_csv.py <gene> <csv_out> <filenames>... [--min_count=<kn>] [--gene_regions=<kn>]
gene_sense_distribution_to_csv.py -h | --help
gene_sense_distribution_to_csv.py params
gene_sense_distribution_to_csv.py example
Options:
-h --help Shows this screen.
--min_count=<kn> Minimal number of reads in a pileup line in order to consider it in the analysis [default: 0]
--gene_regions=<kn> All the gene regions you want to plot. Options: 5utr, 3utr, exon. The default is all of them. Separate them by space [default: ['5utr', '3utr', 'exon']]
"""
我正在尝试让 --gene_regions
参数像 <filenames>
那样接受多个参数。
我试图通过更改此行来做到这一点
gene_sense_distribution_to_csv.py <gene> <csv_out> <filenames>... [--min_count=<kn>] [--gene_regions=<kn>]
收件人:
gene_sense_distribution_to_csv.py <gene> <csv_out> <filenames>... [--min_count=<kn>] [--gene_regions=<kn>...]
但是通过尝试执行命令python SCRIPT_NAME GENE OUTPUT_PATH INPUT_PATH --gene_regions exon intron
我得到以下参数:
{'--gene_regions': ['exon'],
'--help': False,
'--min_count': '0',
'<csv_out>': 'out',
'<filenames>': ['example', 'intron'],
'<gene>': 'Y74C9A.6',
'example': False,
'params': False}
如您所知,<filenames>
参数得到 intron
而我的意思是 --gene_regions
会得到它。
关于如何解决此问题的任何想法?
编辑:我遇到了一个解决方法,只需执行 python SCRIPT_NAME GENE OUTPUT_PATH INPUT_PATH --gene_regions 'exon, intron'
并解析它。
仍然希望得到一个不是解决方法的答案。
您需要重复选项和值,例如:
... --gene_regions exon --gene_region intron
这是一个完整的例子(使用“gene_region”,单数):
"""gene_sense_distribution_to_csv
Usage:
gene_sense_distribution_to_csv.py <gene> <csv_out> <filenames>... [--min_count=<kn>] [--gene_region=<kn> ...]
gene_sense_distribution_to_csv.py -h | --help
gene_sense_distribution_to_csv.py params
gene_sense_distribution_to_csv.py example
Options:
-h --help Shows this screen.
--min_count=<kn> Minimal number of reads in a pileup line in order to consider it in the analysis [default: 0]
--gene_region=<kn> All the gene regions you want to plot. Options: 5utr, 3utr, exon. The default is all of them. Specify multiple times...
"""
$ ./gene_sense_distribution_to_csv.py gene1 csvout file1 file2 --min_count=mm --gene_region=r2 --gene_region=r3 --gene_region r4
{'--gene_region': ['r2', 'r3', 'r4'],
'--help': False,
'--min_count': 'mm',
'<csv_out>': 'csvout',
'<filenames>': ['file1', 'file2'],
'<gene>': 'gene1',
'example': False,
'params': False}
OT:将选项放在参数之前是个好主意,在某些情况下给你更多的自由(参见 --
特殊参数),ref https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap12.html#tag_12_02
gene_sense_distribution_to_csv.py [--min_count=<kn>] [--gene_region=<kn> ...] <gene> <csv_out> <filenames>...
我有以下文档 __doc__
:
"""gene_sense_distribution_to_csv
Usage:
gene_sense_distribution_to_csv.py <gene> <csv_out> <filenames>... [--min_count=<kn>] [--gene_regions=<kn>]
gene_sense_distribution_to_csv.py -h | --help
gene_sense_distribution_to_csv.py params
gene_sense_distribution_to_csv.py example
Options:
-h --help Shows this screen.
--min_count=<kn> Minimal number of reads in a pileup line in order to consider it in the analysis [default: 0]
--gene_regions=<kn> All the gene regions you want to plot. Options: 5utr, 3utr, exon. The default is all of them. Separate them by space [default: ['5utr', '3utr', 'exon']]
"""
我正在尝试让 --gene_regions
参数像 <filenames>
那样接受多个参数。
我试图通过更改此行来做到这一点
gene_sense_distribution_to_csv.py <gene> <csv_out> <filenames>... [--min_count=<kn>] [--gene_regions=<kn>]
收件人:
gene_sense_distribution_to_csv.py <gene> <csv_out> <filenames>... [--min_count=<kn>] [--gene_regions=<kn>...]
但是通过尝试执行命令python SCRIPT_NAME GENE OUTPUT_PATH INPUT_PATH --gene_regions exon intron
我得到以下参数:
{'--gene_regions': ['exon'],
'--help': False,
'--min_count': '0',
'<csv_out>': 'out',
'<filenames>': ['example', 'intron'],
'<gene>': 'Y74C9A.6',
'example': False,
'params': False}
如您所知,<filenames>
参数得到 intron
而我的意思是 --gene_regions
会得到它。
关于如何解决此问题的任何想法?
编辑:我遇到了一个解决方法,只需执行 python SCRIPT_NAME GENE OUTPUT_PATH INPUT_PATH --gene_regions 'exon, intron'
并解析它。
仍然希望得到一个不是解决方法的答案。
您需要重复选项和值,例如:
... --gene_regions exon --gene_region intron
这是一个完整的例子(使用“gene_region”,单数):
"""gene_sense_distribution_to_csv
Usage:
gene_sense_distribution_to_csv.py <gene> <csv_out> <filenames>... [--min_count=<kn>] [--gene_region=<kn> ...]
gene_sense_distribution_to_csv.py -h | --help
gene_sense_distribution_to_csv.py params
gene_sense_distribution_to_csv.py example
Options:
-h --help Shows this screen.
--min_count=<kn> Minimal number of reads in a pileup line in order to consider it in the analysis [default: 0]
--gene_region=<kn> All the gene regions you want to plot. Options: 5utr, 3utr, exon. The default is all of them. Specify multiple times...
"""
$ ./gene_sense_distribution_to_csv.py gene1 csvout file1 file2 --min_count=mm --gene_region=r2 --gene_region=r3 --gene_region r4
{'--gene_region': ['r2', 'r3', 'r4'],
'--help': False,
'--min_count': 'mm',
'<csv_out>': 'csvout',
'<filenames>': ['file1', 'file2'],
'<gene>': 'gene1',
'example': False,
'params': False}
OT:将选项放在参数之前是个好主意,在某些情况下给你更多的自由(参见 --
特殊参数),ref https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap12.html#tag_12_02
gene_sense_distribution_to_csv.py [--min_count=<kn>] [--gene_region=<kn> ...] <gene> <csv_out> <filenames>...