【问题标题】:connect to ftp and download file连接到 ftp 并下载文件
【发布时间】:2018-10-16 19:08:21
【问题描述】:

我正在尝试从 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)

【问题讨论】:

  • 我的猜测是这是由您使用但未显示的特定网址引起的。
  • @SteffenUllrich 已编辑

标签: python python-3.x ftp ftplib


【解决方案1】:
url = 'ftp://ftp.ensemblgenomes.org/pub/release-41/bacteria//fasta/bacteria_176_collection/_bacillus_aminovorans/cdna/'
ftp = ftplib.FTP(url)

来自the documentation of ftplib

类 ftplib.FTP(host='', user='', passwd='', acct='', timeout=None, source_address=None)
返回 FTP 类的新实例。当给定主机时,将进行方法调用 connect(host)。

换句话说:第一个参数只能是主机名,而不是带有protocol://host/path 的 URL。如果您想连接到服务器并将服务器更改为特定路径,则需要分步执行此操作:

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

【讨论】:

    猜你喜欢
    • 2017-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-29
    • 1970-01-01
    相关资源
    最近更新 更多