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

Che*_*Toy 5 python ftp shell command-line

我有一个已经使用了一段时间的脚本,可以轻松地将文件上传到服务器。长期以来,它一直运行良好,但是我无法在新的台式机上运行它。

代码很简单:

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()
Run Code Online (Sandbox Code Playgroud)

我将其运行为:

file_uploader.py backup.sql

我收到以下错误:

追溯(最近一次通话):

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

文件路径= sys.argv [1]

IndexError:列表索引超出范围

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

我正在使用Python 2.7.2运行Windows 7 64位

谢谢

Ign*_*ams 5

您在注册表中的 .py 关联不正确。%*最后不见了。