Press "Enter" to skip to content

标签: FTP

python实现FTP简单上传下载文件【转】

参考了脚本,Python编写上传下载还是很方便的,搜索了一下资料找到了一哥们的参考例子,转来先!
维护服务器的朋友都很清楚,经常需要备份上传下载到其他服务器,所以人去做就很费时间,改用编写脚本每天凌晨夜深人静的时候让它自己跑去!
Win的写法是采用BAT文件来实现,Linux和FreeBSD下可以采用Shell命令,但发现Python更强大!以下是转来的列子:


#!/usr/bin/env python 
# -*- coding: utf-8 -*- 
 
from ftplib import FTP 
 
def ftp_up(filename = "20120904.rar"): 
    ftp=FTP() 
    ftp.set_debuglevel(2)#打开调试级别2,显示详细信息;0为关闭调试信息 
    ftp.connect('192.168.0.1','21')#连接 
    ftp.login('admin','admin')#登录,如果匿名登录则用空串代替即可 
    #print ftp.getwelcome()#显示ftp服务器欢迎信息 
    #ftp.cwd('xxx/xxx/') #选择操作目录 
    bufsize = 1024#设置缓冲块大小 
    file_handler = open(filename,'rb')#以读模式在本地打开文件 
    ftp.storbinary('STOR %s' % os.path.basename(filename),file_handler,bufsize)#上传文件 
    ftp.set_debuglevel(0) 
    file_handler.close() 
    ftp.quit() 
    print "ftp up OK" 
 
def ftp_down(filename = "20120904.rar"): 
    ftp=FTP() 
    ftp.set_debuglevel(2) 
    ftp.connect('192.168.0.1','21') 
    ftp.login('admin','admin') 
    #print ftp.getwelcome()#显示ftp服务器欢迎信息 
    #ftp.cwd('xxx/xxx/') #选择操作目录 
    bufsize = 1024 
    filename = "20120904.rar" 
    file_handler = open(filename,'wb').write #以写模式在本地打开文件 
    ftp.retrbinary('RETR %s' % os.path.basename(filename),file_handler,bufsize)#接收服务器上文件并写入本地文件 
    ftp.set_debuglevel(0) 
    file_handler.close() 
    ftp.quit() 
    print "ftp down OK" 

转自:http://wangwei007.blog.51cto.com/68019/983638

Leave a Comment