【问题标题】:Errors using ftplib [duplicate]使用 ftplib 的错误 [重复]
【发布时间】:2019-07-24 06:22:01
【问题描述】:

我正在尝试使用简单的 python 代码下载目录中存在的所有文件,我使用了 ftplib 但无法获得正确的结果。

from ftplib import FTP
import os
folder='D:\\New folder'
os.chdir(folder)
ftp = FTP('http://mtb.dobzhanskycenter.org/VCF/')
ftp.login()
vcffiles = ftp.nlst()
for files in vcffiles:
    local_filename = os.path.join('D:\\New folder', files)
    file = open(local_filename, 'wb')
    ftp.retrbinary('RETR '+ files, file.write)
    file.close()
ftp.quit()

Error:-

Traceback (most recent call last):
  File "D:/Python Class/url.py", line 5, in <module>
    ftp = FTP('http://mtb.dobzhanskycenter.org/VCF/')
  File "C:\Program Files\Python37\lib\ftplib.py", line 117, in __init__
    self.connect(host)
  File "C:\Program Files\Python37\lib\ftplib.py", line 152, in connect
    source_address=self.source_address)
  File "C:\Program Files\Python37\lib\socket.py", line 707, in create_connection
    for res in getaddrinfo(host, port, 0, SOCK_STREAM):
  File "C:\Program Files\Python37\lib\socket.py", line 748, in getaddrinfo
    for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
  socket.gaierror: [Errno 11001] getaddrinfo failed

【问题讨论】:

    标签: python ftp ftplib


    【解决方案1】:

    FTP constructor 的第一个参数是host——一个主机名或一个IP地址——不是一个URL(只让HTTP URL – 它是 FTP 客户端,而不是 HTTP 客户端)。

    应该是这样的:

    ftp = FTP('mtb.dobzhanskycenter.org')
    

    如果您想列出/VCF 子文件夹中的文件,请执行以下操作:

    ftp.cwd('VCF')      
    vcffiles = ftp.nlst()
    

    vcffiles = ftp.nlst('VCF')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-15
      • 1970-01-01
      • 1970-01-01
      • 2012-11-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多