2011-10-07 47 views
4

我有一段脚本,我已经使用了一段时间轻松上传文件到我的服务器。它一直在努力工作很长一段时间,但我无法在我的新台式计算机上运行它。Python的sys.argv超出范围,不明白为什么

代码很简单:

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() 

我运行它:

file_uploader.py backup.sql

我收到以下错误:

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

我不知道为什么它给我即使我将一个脚本传递给脚本,也无法找到第一个命令行参数。

我运行Windows 7与Python的64位2.7.2

感谢

+1

你能打印出'sys.argv'并将结果添加到你的问题。 – NPE

+0

你如何运行脚本?你是从Windows控制台(Cmd.exe)运行它吗?从Cygwin bash?批处理文件?还有别的吗? –

回答

4

在注册表中您的.py关联是不正确。它最后缺少%*

+0

这解决了它,非常感谢帮助=) – ChewToy

1

尝试:

\python27\python file_uploader.py backup.sql