我正在尝试使用简单的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发布于 2019-07-24 15:11:33
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')https://stackoverflow.com/questions/57176457
复制相似问题