Python sys.argv超出范围,不明白为什么

时间:2011-10-07 16:29:13

标签: python shell command-line ftp

我有一个脚本,我已经使用了一段时间轻松上传文件到我的服务器。它已经很长时间了,但我不能让它在我的新台式电脑上工作。

代码很简单:

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

我收到以下错误:

  

追踪(最近一次呼叫最后一次):

     

文件“C:\ Users \ Admin \ Desktop \ file_uploader.py”,第12行,

     

filepath = sys.argv [1]

     

IndexError:列表索引超出范围

我不确定为什么它会给我一个错误,即使我将一个命令行参数传递给脚本,它无法找到第一个命令行参数。

我使用Python 2.7.2运行Windows 7 64位

由于

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:1)

尝试:

\python27\python file_uploader.py backup.sql