使用 sys.argv[1] 时出现 "列表索引超出范围
我正在写一个简单的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:"))