подключиться к ftp и скачать файл - PullRequest
0 голосов
/ 16 октября 2018

Я пытаюсь загрузить определенный файл с ftp, но у меня возникает ошибка при попытке подключиться

import ftplib
url = 'ftp://ftp.ensemblgenomes.org/pub/release-41/bacteria//fasta/bacteria_176_collection/_bacillus_aminovorans/cdna/'
ftp = ftplib.FTP(url)

ошибка, которую я получаю: UnicodeError: encoding with 'idna' codec failed (UnicodeError: label too long)

1 Ответ

0 голосов
/ 16 октября 2018
url = 'ftp://ftp.ensemblgenomes.org/pub/release-41/bacteria//fasta/bacteria_176_collection/_bacillus_aminovorans/cdna/'
ftp = ftplib.FTP(url)

Из документации по ftplib :

класса ftplib.FTP (host = '', user = '', passwd = '', acct = '', timeout = Нет, source_address = Нет)
Возвращает новый экземпляр класса FTP.Когда хост указан, вызывается метод connect (хост).

Другими словами: ожидается, что первым аргументом будет только имя хоста, а не URL с protocol://host/path.Если вы хотите подключиться к серверу и изменить сервер на определенный путь, вам нужно сделать это в пошаговом режиме:

ftp = ftplib.FTP('ftp.ensemblgenomes.org','ftp','user@example.com')
ftp.cwd('/pub/release-41/bacteria//fasta/bacteria_176_collection/_bacillus_aminovorans/cdna/')
...