利用Python的ftplib包连接网络服务器时总是连接失败
但是用自己的浏览器可以访问
在网上查询说是FTP服务没开,于是按教程开了FTP服务,也在防火墙上去除了屏蔽,如图所示:
但是依然没有用
网上说FTP的默认端口是21,我新建FTP的站点时默认服务端口是80,不知道有没有影响。
首次接触FTP功能,可能理解不透彻,一时找不到解决办法。
以下是我的代码,按照《Python核心编程第3版》的ftp相关章节的示例代码写的。
#! python3
# @Project: pythondemo - getLatestFTP.py
# @Info : 利用 ftp包从网站下载文件
import ftplib,os,socket
HOST = 'ftp.debian.org'
DIRN = 'debian/tools'
FILE = 'loadlin.exe'
def main():
try:
f = ftplib.FTP(HOST)
except (socket.error, socket.gaierror):
print('ERROR: cannot reach %s' % HOST)
return
print('***Connnected to host %s' % HOST)
try:
f.login()
except ftplib.error_perm:
print('ERROR: cannot login anonymously')
f.quit()
return
print('***Logged in as "anonymous"')
try:
f.cwd(DIRN)
except ftplib.error_perm:
print('ERROR: cannot CD to %s' % DIRN)
f.quit()
return
print('***Changed to %s folder' % DIRN)
try:
f.retrbinary('RETR %s' % FILE, open(FILE, 'wb').write())
except ftplib.error_perm:
print('ERROR: cannot read file %s' % FILE)
os.unlink(FILE)
else:
print('***Downloaded %s to CMD' % FILE)
f.quit()
if __name__ == '__main__':
main()