sys.argv:列表索引超出范围

时间:2013-04-13 09:43:33

标签: python indexing

脚本的一部分

if sys.argv[1]  == 'help':
    help()
elif len(sys.argv) < 5:
    use()
else:
    pass


host = sys.argv[1]
username = sys.argv[2]
password = sys.argv[3]
node = sys.argv[4]
opts = sys.argv[5]

这只是出现问题的代码的一部分..当我运行它时,出现错误:

host = sys.argv[1]

IndexError:列表索引超出范围

一切都运行良好,但我刚刚重新安装了python。但是,现在它正在制造问题。这仍然适用于Linux。

“通过一些搜索,我开始知道注册表中的.py关联是不正确的。最后它缺少%*。”但是,我不知道如何解决它。

环境变量中的当前设置路径是C:\ Python27; C:\ Python27 \ Lib \ site-packages \; C: \ Python27 \脚本\

1 个答案:

答案 0 :(得分:3)

sys.argv是一个与其他列表一样的列表,除了它是从命令行创建的。

它包含用于运行脚本的命令行所指示的项目。

代码永远不正确,问题与您的Python文件关联或路径无关。 (如果是,您将从命令行收到错误,但是您得到的是来自Python的错误。)

问题是,在检查sys.argv[1]的长度之前检查'help',您认为会有sys.argv。如果脚本运行时根本没有参数,则[1]索引超出范围。