Python sys.argv 超出范围,不明原因

6 投票
2 回答
2566 浏览
提问于 2025-04-17 03:53

我有一个脚本,已经用了一段时间,可以方便地把文件上传到我的服务器。这个脚本一直运行得很好,但在我新的台式电脑上却无法工作。

代码很简单:

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: 列表索引超出范围

我不明白为什么会出现这个错误,明明我已经给脚本传了第一个命令行参数,但它却找不到。

我正在使用的是 64 位的 Windows 7,Python 版本是 2.7.2。

谢谢

2 个回答

1

试试这个:

\python27\python file_uploader.py backup.sql 
5

你的 .py 文件在注册表中的关联设置不正确。它的结尾缺少了 %*

撰写回答