Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Python sys.argv out of range, don't understand why

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

like image 864
ChewToy Avatar asked Oct 07 '11 16:10

ChewToy


2 Answers

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

like image 178
Ignacio Vazquez-Abrams Avatar answered Oct 17 '22 23:10

Ignacio Vazquez-Abrams


Try:

\python27\python file_uploader.py backup.sql 
like image 45
Ethan Furman Avatar answered Oct 17 '22 22:10

Ethan Furman