代码取自 Python核心编程
import ftplib
import socket
import os
HOST = 'ftp.sjtu.edu.cn'
DIRN = 'pub/.mirror1/ftp.debian.org/debian'
FILE = 'README.mirrors.txt'
def main():
try:
f = ftplib.FTP(HOST)
except (socket.error, socket.gaierror) as e:
print('ERROR: cannot reach %s' % HOST)
return
print('*** Connected to host "%s"' % HOST)
try:
f.login()
except ftplib.error_perm:
print('ERROR: cannot login annoymously')
f.quit()
return
print('*** Logged in as "annoymous"')
try:
f.cwd(DIRN)
except ftplib.error_perm:
print('ERROR: cannot CD to "%s" folder' % DIRN)
f.quit()
return
print('*** Changed to "%s" folder' % DIRN)
try:
ft = open(FILE, 'wb')
f.retrbinary('RETR %s' % FILE, ft.write)
except ftplib.error_perm:
print('ERROR: cannot read file "%s"' % FILE)
os.unlink(FILE)
# f.quit()
# return
else:
print('*** Downloaded "%s" to CWD' % FILE)
finally:
ft.close()
f.quit()
if __name__ == '__main__':
main()
刚开始我一直连不上书上的FTP站点,也换了好多个站点一直连不上,后来下了一个FTP客户端(FileZilla),现在FileZilla上连接,再把能连上的站点写到程序里。