首页 > 编程语言 >Python FTP 下载文件 简单示例

Python FTP 下载文件 简单示例

时间:2022-10-09 14:07:41浏览次数:114  
标签:FTP remote ftp Python ftplib 示例 host file print


简单的FTP下载 ,不加任何异常判断。


<span style="font-size:14px;">import os

from ftplib import FTP

ftp_addr = '10.10.0.1'

f=FTP(ftp_addr)
f.login('anonymous')
f.cwd("apk_download/")
remote_file = '20141223140651.apk'
f.retrbinary("RETR %s" % remote_file, open(remote_file, "wb").write)</span>




网上搜到个带 异常处理的版本 来自

​http://www.hiadmin.org/code/python-ftp ​

<span style="font-size:14px;">#! encoding:utf-8
# Filename : ftptestdown.py
#使用ftplib.error_perm函数来打印输出错误信息

import ftplib
import os
import socket

remote_host = "ftp.kernel.org"
remote_dir = "/pub/linux/kernel/v1.0"
remote_file = "patch8.gz"
def kernelmain():
try:
ftp = ftplib.FTP(remote_host)
except (socket.error, socket.gaierror):
print "ERROR cannot reach '%s'" % remote_host
return
print "..Connected to remote_host '%s'.." %remote_host

try:
ftp.login() #使用匿名账号登陆也就是anonymous
except ftplib.error_perm:
print "ERROR cannot login anonymously"
ftp.quit()
return
print "...logged in as 'anonymously'..."

try:
ftp.cwd(remote_dir) #切换当前工作目录
except ftplib.error_perm:
print "ERROR cannot cd to '%s'" % remote_dir
ftp.quit()
return
print "....Changed to '%s' folder...." % remote_dir

try:#传一个回调函数给retrbinary() 它在每接收一个二进制数据时都会被调用
ftp.retrbinary("RETR %s" % remote_file, open(remote_file, "wb").write)
except ftplib.error_perm:
print "ERROR cannot remote_file '%s'" % remote_file
os.unlink(remote_file)
else:
print ".....Download '%s' to cwd....." % remote_file

ftp.quit()
return

#调用函数执行测试
if __name__ == "__main__":
kernelmain()</span>





标签:FTP,remote,ftp,Python,ftplib,示例,host,file,print
From: https://blog.51cto.com/u_15815563/5740289

相关文章