【问题标题】:Sanity check against Python command-line argument针对 Python 命令行参数的健全性检查
【发布时间】:2020-06-14 01:00:12
【问题描述】:

在向所有美丽的人问好之后,

在我尝试对用户的命令行参数进行完整性检查的代码的 sn-p 下方。

我的程序应该只接受来自用户的两个参数;在节目名称旁边;否则它会吐出一个USAGE消息供程序使用。

问题是我无法弄清楚为什么程序在提供所需数量的参数时不会继续运行?! 无论有多少参数,代码都会不断返回使用消息;即使有两个是真的;有没有想过我该怎么办? 请。

## Perfome a sanity check against command-line agguments
for arg in sys.argv:
    if len(arg) != 3:
        print(f'Usage: dna.py <DNA database CSV file> <STR sequence text file>')
        sys.exit(1)

【问题讨论】:

  • 你为什么要遍历sys.argv?
  • 您正在测试命令行参数的字符串长度(每个参数,包括脚本本身的名称,都必须是三个字符长)。这显然不是本意。你想测试len(sys.argv),没有任何循环。
  • 非常感谢亲爱的 (alaniwi) 的贡献。您指出的内容对我来说太有帮助了,代码完成了它的工作,所以再次感谢您。

标签: python command-line-arguments sanity-check


【解决方案1】:

我认为 for 循环不是必需的,您只需要这样的东西:

if len(sys.argv) != 3:
   print("Your usage")

您可以随时使用argparse 标准模块,它可以帮助您构建一个用户友好的命令行程序。

【讨论】:

  • 同意,但我怀疑 OP 会受益于如何在此处使用 argparse 的实际示例。
  • 是的。 argparse让生活更轻松
猜你喜欢
  • 2011-01-12
  • 1970-01-01
  • 1970-01-01
  • 2016-05-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多