回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我正在创建一个python脚本,为了解析参数,我需要以下命令:
脚本将接受三个参数,只有一个参数始终是必需的,第二个参数将仅根据第一个参数的某些值而强制使用,第三个参数可能会出现,也可能不会出现。
这是我的尝试:</p>
<pre><code>class pathAction(argparse.Action):
folder = {'remote':'/path1', 'projects':'/path2'}
def __call__(self, parser, args, values, option = None):
args.path = values
print "ferw %s " % args.component
if args.component=='hos' or args.component=='hcr':
print "rte %s" % args.path
if args.path and pathAction.folder.get(args.path):
args.path = pathAction.folder[args.path]
else:
parser.error("You must enter the folder you want to clean: available choices[remote, projects]")
def main():
try:
# Arguments parsing
parser = argparse.ArgumentParser(description="""This script will clean the old component files.""")
parser.add_argument("-c", "--component", help="component to clean", type=lowerit, choices=["hos", "hcr", "mdw", "gui"], required=True)
parser.add_argument("-p", "--path", help="path to clean", action = pathAction, choices = ["remote", "projects"])
parser.add_argument("-d", "--delete", help="parameter for deleting the files from the filesystem", nargs='*', default=True)
args = parser.parse_args()
</code></pre>
<p>如果工作良好,除了一个例子:如果我有-c,它应该抱怨,因为没有-p,但它没有
你能帮帮我吗?
谢谢</p>