странное поведение Python ftplib

Я столкнулся с очень странным поведением при попытке подключиться к ftp-серверу с помощью ftplib. Что я делаю:

import ftplib
ftp = ftplib.FTP('my-ftp-server')
ftp.login('user ', 'pass')

Теперь, если я запускаю их из интерпретатора Python, все работает нормально, и я получаю:

'230 Login successful.'

Но я хочу, чтобы они были в хорошем сценарии, который может мне помочь. Когда я помещаю все это в какой-нибудь скрипт Python и запускаю:

 python my_ftp_stuff.py

Я получил:

 ftplib.error_perm: 530 Login incorrect.

Я действительно не знаю, что может вызвать это странное поведение. У кого-нибудь есть советы, что попробовать?

С наилучшими пожеланиями


person Bogdan    schedule 19.02.2013    source источник


Ответы (2)


У вас есть пробел (' ') в поле вашего имени пользователя.

person danodonovan    schedule 19.02.2013
comment
Вау это смущает. И я потратил около 2 часов, бьясь головой о стену, что это может быть. Также забавно, что это не мои настоящие учетные данные, поэтому я случайно добавил здесь пробел :D - person Bogdan; 19.02.2013
comment
Не парься, у меня тоже до сих пор отпечатки стен на голове. - person danodonovan; 19.02.2013

Вы должны передать логин и пароль в __init__ вместо метода входа:

import ftplib
ftp = ftplib.FTP('my-ftp-server', 'login', 'password')
print(ftp.dir())
person Stanislav Kraev    schedule 19.02.2013
comment
да, но это просто инициализация ftp-объекта, и если вы работаете в ipython или вам нужно ждать других сотрудников, ваше соединение может быть закрыто после тайм-аута по умолчанию. Также ftp.connect(host, timeout=x) ftp.login(user, passwd) более безопасен и может легко переподключаться с отловом ошибок - person GeoStoneMarten; 14.03.2017