使用sys.argv [1]时“列表索引超出范围”

时间:2013-02-27 20:27:04

标签: python python-3.x command-line-arguments

我正在编写一个简单的Python客户端和服务器,它在我的代码中正常传递服务器地址,但是,我希望用户能够输入服务器地址并抛出错误,如果它不正确。当我有下面的代码时,我收到来自终端“列表索引超出范围”的错误消息。

server = (sys.argv[1])
serverAdd = (server, '65652') # server address and port number

任何人都可以帮我这个。

当我在python中运行我的客户端程序时,我希望能够输入一个地址来连接并将其存储在服务器中。我通过输入programname.py直接从命令行运行程序。服务器已在运行,正在侦听传入连接。

1 个答案:

答案 0 :(得分:15)

使用这个Python:

import sys

print(sys.argv)

使用此命令调用:

>python q15121717.py 127.0.0.1

我得到了这个输出:

['q15121717.py', '127.0.0.1']

我认为你没有将参数传递给Python脚本

现在,您可以稍微更改代码以从服务器获取服务器,或者在没有传递服务器时提示服务器。在这种情况下,你会看到这样的东西:

if len(sys.argv) > 1:
    print(sys.argv[1])
else:
    print(input("Enter address:"))