Загрузить файл FTP с Argv - PullRequest
0 голосов
/ 19 марта 2012

Я получаю сообщение, что "имя 'ftp' не определено" Похоже, я тоже мог что-то испортить.

import ftplib
from ftplib import FTP
from sys import argv
import os

filename = argv

ftp = FTP(ftp.server.com)
ftp.login(username, password)
ftp.storbinary('STOR %s', open('%s', 'rb')) (filename, filename)

Ответы [ 2 ]

1 голос
/ 19 марта 2012

Ваше использование ftp.server.com незаконно - вам нужно указать это. Python считает, что «ftp» - это на тот момент идентификатор, из которого вы пытаетесь извлечь поле «сервер», и, наконец, поле «com». Поскольку вы хотите, чтобы вместо этого это была строка с именем, заключите ее в кавычки.

Кроме того, вы используете sys.argv неправильно. Argv - это список строк, а не одна строка. Ваше имя файла должно быть " ".join(argv[1:]) вместо этого, чтобы захватить командную строку примерно дословно. (argv [0] сам скрипт).

1 голос
/ 19 марта 2012

sys.argv - это список. Первый элемент в списке - это команда, следующие элементы - заданные аргументы. Вы, вероятно, хотите имя файла = argv [1].

Вам нужно будет указать значения имени пользователя и пароля, чтобы это работало также.

...