如何调整 Python 的 sys.argv 以相应地更改其长度

How to adjust Python's sys.argv to change its length accordingly

我一直在尝试让 sys.argv[] 根据用户输入的参数数量更改其输出。我试图做到这一点,如果没有 sys.argv[5],那么它将使用 sys.argv[4]。目前我已经尝试过这两个想法来解决我的问题总是 IndexError: list index out of range 当我试图让 sys.argv[5] 留空时:

if len(sys.argv) is 4:
    location = int(sys.argv[1])
    order = sys.argv[2]
    amount = sys.argv[3]
    user = sys.argv[4]
    company= sys.argv[4]
    print(company)
else:
    location = int(sys.argv[1])
    order = sys.argv[2]
    amount = sys.argv[3]
    user = sys.argv[4]
    company= sys.argv[5]
    print(company)

还尝试将 "if len(sys.argv) 为 4:" 更改为 "if sys.argv[5] ! = 真:。我读过一些关于解决索引的帖子,但不知道如何实际定制代码以供我自己使用。

谢谢!

您可以像下面那样使用 try/except 块,如果存在 index 5 则使用它,否则使用 index 4.

if len(sys.argv) >= 4:
    location = int(sys.argv[1])
    order = sys.argv[2]
    amount = sys.argv[3]
    user = sys.argv[4]
    try:
        company= sys.argv[5]
    except IndexError:
        company= sys.argv[4]
    print(company)
else:
    print('Provide minimum 4 args')