首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ftplib时出错

使用ftplib时出错
EN

Stack Overflow用户
提问于 2019-07-24 14:22:01
回答 1查看 168关注 0票数 1

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

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

发布于 2019-07-24 15:11:33

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

所以它应该是:

代码语言:javascript
复制
ftp = FTP('mtb.dobzhanskycenter.org')

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

代码语言:javascript
复制
ftp.cwd('VCF')      
vcffiles = ftp.nlst()

代码语言:javascript
复制
vcffiles = ftp.nlst('VCF')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57176457

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档