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

11 投票
1 回答
44575 浏览
提问于 2025-04-17 17:21

我正在写一个简单的Python客户端和服务器,代码运行得很好,可以在代码里直接写服务器地址。不过,我想让用户能够输入服务器地址,如果输入错误就给出错误提示。当我使用下面的代码时,终端显示了“列表索引超出范围”的错误信息。

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

有没有人能帮我解决这个问题呢?

当我在Python中运行我的客户端程序时,我希望能够输入一个地址来连接,并把这个地址存储在server变量里。我是通过在命令行直接输入programname.py来运行这个程序的。服务器已经在运行,等待连接。

1 个回答

17

使用这个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:"))

撰写回答