Скрипт Python 2.5 для подключения к FTP и загрузки файла - PullRequest
1 голос
/ 25 февраля 2011

Я уверен, что это было решено ранее, но я не могу найти аналогичные вопросы и ответы (новичок). Используя Windows XP и Python 2.5, я пытаюсь использовать сценарий для подключения к FTP-серверу и загрузки файлов.Это должно быть просто, но, следуя инструкциям похожих скриптов, я получаю ошибки:

ftp.login('USERNAME')
  File "C:\Python25\lib\ftplib.py", line 373, in login
    if resp[0] == '3': resp = self.sendcmd('PASS ' + passwd)
  File "C:\Python25\lib\ftplib.py", line 241, in sendcmd
    return self.getresp()
  File "C:\Python25\lib\ftplib.py", line 216, in getresp
    raise error_perm, resp
error_perm: 530 User USERNAME cannot log in.

Используемый мной скрипт:

def handleDownload(block):
    file.write(block)
    print ".",

# Create an instance of the FTP object
# FTP('hostname', 'username', 'password')
ftp = FTP('servername')

print 'ftplib example'
# Log in to the server
print 'Logging in.'
# You can specify username and password here if you like:
ftp.login('USERNAME', 'password') 
#print ftp.login()

# This is the directory 
directory = '/GIS/test/data'
# Change to that directory.  
print 'Changing to ' + directory
ftp.cwd(directory)

# Print the contents of the directory
ftp.retrlines('LIST')

Я ценю этобыть тривиальным вопросом, но если кто-то может дать некоторые идеи, это было бы очень полезно!

Спасибо, S

Ответы [ 3 ]

5 голосов
/ 04 марта 2011

Я не могу понять, какую библиотеку вы используете.Стандарт Python urllib2 достаточен:

import urllib2, shutil

ftpfile = urllib2.urlopen("ftp://host.example.com/path/to/file")
localfile = open("/tmp/downloaded", "wb")
shutil.copyfileobj(ftpfile, localfile)

Если вам нужно войти ( анонимный вход не достаточен), то укажите учетные данные внутри URL:

urllib2.urlopen("ftp://user:password@host.example.com/rest/of/the/url")
4 голосов
/ 25 февраля 2011
ftp.login('USERNAME', 'password') 

Замените это реальными данными.В соответствии с ошибкой вы пытаетесь войти в систему как «ИМЯ ПОЛЬЗОВАТЕЛЯ» с паролем «пароль», который явно не будет работать.

Также замените servername в ftp = FTP('servername') именем хоста сервера, который вы хотитеподключиться к.

0 голосов
/ 25 февраля 2011

Первой тривиальной проверкой будет открытие интерактивного сеанса (т. Е. FTP-сервер на этот сервер с теми же учетными данными), чтобы убедиться, что это не проблема с разрешениями.

Еще один источник сбоя: вам может потребоваться указать ваше имя пользователя как домен \ имя пользователя при подключении к серверу MS ftp.

Может, это поможет?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...