Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用ftplib的错误_Python_Ftp_Ftplib - Fatal编程技术网

Python 使用ftplib的错误

Python 使用ftplib的错误,python,ftp,ftplib,Python,Ftp,Ftplib,我试图使用一个简单的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

我试图使用一个简单的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
从ftplib导入FTP
导入操作系统
文件夹='D:\\新建文件夹'
chdir(文件夹)
ftp=ftp('http://mtb.dobzhanskycenter.org/VCF/')
ftp.login()
vcffiles=ftp.nlst()
对于vcffiles中的文件:
local\u filename=os.path.join('D:\\New folder',files)
文件=打开(本地文件名“wb”)
ftp.retrbinary('RETR'+文件,file.write)
file.close()文件
ftp.quit()
错误:-
回溯(最近一次呼叫最后一次):
文件“D:/Python类/url.py”,第5行,在
ftp=ftp('http://mtb.dobzhanskycenter.org/VCF/')
文件“C:\Program Files\Python37\lib\ftplib.py”,第117行,在\uuu init中__
self.connect(主机)
文件“C:\Program Files\Python37\lib\ftplib.py”,第152行,在connect中
source\u address=self.source\u address)
文件“C:\Program Files\Python37\lib\socket.py”,第707行,位于创建\u连接中
对于getaddrinfo(主机、端口、0、SOCK_流)中的res:
文件“C:\Program Files\Python37\lib\socket.py”,第748行,在getaddrinfo中
对于_socket.getaddrinfo(主机、端口、系列、类型、协议、标志)中的res:
socket.gaierror:[Errno 11001]getaddrinfo失败
的第一个参数是
host
–主机名或IP地址–而不是URL(让我们只使用HTTP URL–它是FTP客户端,而不是HTTP客户端)

因此,它应该是:

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

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

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

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

因此,它应该是:

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

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

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