【问题标题】:Better way to get first argv [duplicate]获得第一个 argv 的更好方法 [重复]
【发布时间】:2018-10-29 12:50:59
【问题描述】:

在我执行python3.6 test.py some_argument 之后,我需要快速而好的方法(或库)来使用第一个参数。

if len(sys.argv) > 1:
    argument_i_want = sys.argv[1]

有没有办法做类似的事情: argument_i_want = some_lib.get_first_or_empty()

【问题讨论】:

  • 如果有人编写了一个库来将 2 行代码减少到 1 行,我会感到非常惊讶...
  • 当你有更大的功能时,你可以去图书馆。但是当功能小到 if 条件时,我建议自己继续!
  • 三元运算符:argument_i_want = sys.argv[1] if len(sys.argv) else ''
  • 如果您以后可能会添加其他选项,请考虑改用argparse,为位置参数设置默认值。
  • 标记为重复,因为sys.argv 只是一个list。没有规范的解决方案。我觉得这也不存在很奇怪(毕竟我们有dict.get(key, default))但就是这样。

标签: python python-3.x


【解决方案1】:

一种方法是使用try-catch

例如:

import sys

try:
    argument_i_want = sys.argv[1]
except IndexError:
    argument_i_want = ""

【讨论】:

  • 不错,不过还是更长,不知道有没有一个班轮……
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-11-02
  • 2016-07-11
  • 2015-04-17
  • 2019-10-28
  • 2012-03-05
  • 1970-01-01
  • 2011-04-01
相关资源
最近更新 更多