首页 > 解决方案 > sys.args[1] 命令的“IndexError: list index out of range”

问题描述

我收到一个错误:

sys.argv[1] 命令的“IndexError: list index out of range”。

我认识到 sys.argv[0] 会给我我的文件的名称,并且在这个 if-elif-else 条件循环中,它清楚地将自己路由到 else,这在我当前的应用程序中是不可取的。

if sys.argv[1] == "train.txt":
    print_data(e2e_train_src, e2e_train_tgt)
elif sys.argv[1] == "valid.txt":
    print_data(e2e_val_src, e2e_val_tgt)
else:
    assert False

我希望数据能够打印出来,但事实并非如此。

标签: pythonpython-3.x

解决方案


您可以通过执行以下操作检查索引:

print("length of arguments: ", len(sys.argv))

这将为您提供参数的数量。

argv[0] 是 python 模块,所以它不能是“valid.txt”

参数的用法:

$python my_module.py "first_argument" "second_argument"

这将有 2 个参数/参数。


推荐阅读