“list index out of range” when using sys.argv[1]

2019-01-07 20:49发布

问题:

I am writing a simple Python client and server, which works fine passing the server address within my code, however, I want the user to be able to enter the server address and throw and error if its incorrect. When I have the code below I get a error message from the terminal "list index out of range".

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

Can anyone help me with this please.

When I run my client program in python I want to be able to enter a address to connect to and store that in server. I run the program directly from the command line by typing programname.py. The server is already running listening for incoming connections.

回答1:

With this Python:

import sys

print(sys.argv)

And invoked with this command:

>python q15121717.py 127.0.0.1

I get this output:

['q15121717.py', '127.0.0.1']

I think you are not passing a argument to your Python script

Now you can change your code slightly to take a server form the command line or prompt for a server when none is passed. In this case you would look at something like this:

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