Python sys.argv out of range, don't understand why
Question: I have a script that I've been using for a some time to easily upload files to
my server. It has been working great for a long time, but I can't get it to
work on my new desktop computer.

The code is simple:

    
    
    import os.path
    import sys
    import os
    from ftplib import FTP
    
    host = ""
    acc = ""
    pw = ""
    filepath = sys.argv[1]
    
    if (not os.path.isfile(filepath)):
        x = input("ERROR, invalid filepath")
        exit()
    
    filename = os.path.basename(filepath)
    file_object = open(filepath, 'rb')
    
    ftp = FTP(host)
    ftp.login(acc, pw)
    ftp.storbinary('STOR ' + filename, file_object)
    ftp.quit()
    
    file_object.close()
    

I run it as:

> file_uploader.py backup.sql

I get the following error:

> Traceback (most recent call last):
>
> File "C:\Users\Admin\Desktop\file_uploader.py", line 12, in
>
> filepath = sys.argv[1]
>
> IndexError: list index out of range

I'm not sure why it's giving me an error that it can't find the first
commandline argument even though I passed one to the script.

I am running Windows 7 64-bit with Python 2.7.2

Thanks


Answer: Your .py association in the registry is incorrect. It's missing `%*` at the
end.

