如何在Python中使用argparse获取命令行参数?

2 投票
1 回答
1982 浏览
提问于 2025-04-16 19:20

我想在命令行传入选项后,能够保存整数值。理想情况下,它应该是这样的:

python thing.py -s 1 -p 0 1 2 3 -r/-w/-c
  • -s - 存储接下来的整数

  • -p - 存储接下来的多个整数

最后的部分只能选择三个选项中的一个(-r-w-c),这取决于我需要做什么。

我一直在尝试阅读教程,但它们都只用同样的两个例子,根本没有解释如何在-选项后保存整数。

1 个回答

4

在编程中,有时候我们会遇到一些问题,特别是在使用某些工具或库的时候。比如说,当你在写代码时,可能会发现某个功能没有按照预期工作。这种情况可能是因为你没有正确使用这个功能,或者是因为它本身存在一些限制。

有些时候,解决问题的关键在于仔细阅读文档,了解这个功能的具体用法和注意事项。文档通常会提供很多有用的信息,比如如何正确调用这个功能,或者在什么情况下它可能会出错。

另外,社区的帮助也很重要。很多时候,其他开发者可能遇到过类似的问题,他们在网上分享的经验和解决方案可以给你提供很大的帮助。

总之,遇到问题时,不要着急,先查阅相关资料,看看有没有人遇到过类似的情况,或者是否有解决方案可以参考。

>>> import argparse
>>> parser = argparse.ArgumentParser()
>>> parser.add_argument('-s', type=int)
[...]
>>> parser.add_argument('-p', type=int, nargs='*')
[...]
>>> group = parser.add_mutually_exclusive_group(required=True)
>>> group.add_argument('-r', action='store_true')
[...]    
>>> group.add_argument('-w', action='store_true')
[...]    
>>> group.add_argument('-c', action='store_true')
[...]    
>>> parser.parse_args("-s 1 -p 0 1 2 3 -r".split())
Namespace(c=False, p=[0, 1, 2, 3], r=True, s=1, w=False)

撰写回答