2013-02-08 62 views
3

我的python3脚本适用于在命令行中指定的输入和输出文件。 的使用应该是这样的具有前缀的Argparse位置参数

xxxx.py [-h] --input=file --output=file 

在代码中,我使用

parser.add_argument("input", help='Input file'); 
parser.add_argument("output", help='Output file'); 

但争论是没有必要的前缀。有没有办法为每个参数指定前缀?

回答

5

只需包括双破折号:

parser.add_argument("--input", help='Input file'); 
parser.add_argument("--output", help='Output file'); 

参数是任一位置或可选的;以--开头的参数是总是可选。你不能用--前缀创建位置参数,你真的不应该这样做。前缀--是您真正不想破坏的用户界面约定。

+0

我同意并理解你的意思,但是这种格式是在我的课程作业中定义的,所以我无法更改它。 在这种情况下,我想我会将它们视为可选项,然后检查它们是否都是在命令行中定义的,但我完全不喜欢该解决方案,因为它会混淆自动生成的帮助选项。 – skornos 2013-02-08 15:46:20

+1

@skornos:我怀疑你在这种情况下误解了任务。 – 2013-02-08 15:49:58

+0

你说得对,我的不好 – skornos 2013-02-08 16:16:02