微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python的FTP模块的简单示例

感兴趣的小伙伴,下面一起跟随编程之家 jb51.cc的小编来看看吧。
python本身自带一个FTP模块,可以轻松实现FTP的上传,下载等操作。下面来看看用法

# 来自jb51.cc
from ftplib import FTP
import socket    #用来设置超时时间
FTP.connect(服务器地址,端口,超时时间)      # 连接服务器
FTP.login(用户名,用户密码)        # 用户登录
FTP.pwd(路径)                    # 读取操作路径
FTP.cwd(路径)                    # 设置要操作FTP文件夹路径
FTP.nlst()            # 获得目录下文件
FTP.retrbinary(文件名,回调函数)     # 下载FTP上的文件
FTP.delete(文件名)                # 删除FTP文件
FTP.storbinary(文件名,文件对象 [,块大小])     # 上传FTP文件
FTP.quit()                      # 退出FTP服务器
FTP.set_pasv(boolean)           # 是否设置为被动模式
 
FTP.rename(old,new)            # 重命名
FTP.delete(path)                # 删除文件
FTP.mkd(directory)              # 创建目录



一个上传代码

# 来自jb51.cc
import socket
from ftplib import FTP
ftp_server='xx.xx.xx.xx'
ftp_user='xxxxx'
ftp_password='xxxxx'
ftp_backup_dir='backup'
 
newday = date.today()    #获取今天的日期
oldday = date.today()-timedelta(5)    #获得5天前的日期
newfile = '/home/backup/' + 'backup_data_' + str(newday.year) + '.' + str(newday.month) + '.' +  str(newday.day) + '.zip'    #本次备份文件名(绝对路径)
oldfile = '/home/backup/' + 'backup_data_' + str(oldday.year) + '.' + str(oldday.month) + '.' +  str(oldday.day) + '.zip'    #5天前备份的文件名(绝对路径)
 
def upload():
    socket.setdefaulttimeout(60)    #超时FTP时间设置为60秒
    ftp = FTP(ftp_server)
    print(login ftp...)
    try:
        ftp.login(ftp_user,ftp_password)
        print(ftp.getwelcome())   #获得欢迎信息
 
        try:
            if ftp_backup_dir in ftp.nlst():
                print(found backup folder in ftp server,upload processing.)
            else:
                print(don't found backup folder in ftp server,try to build it.)
                ftp.mkd(ftp_backup_dir)
        except:
            print(the folder + ftp_backup_dir + doesn't exits and can't be create!)
            sys.exit()
    except:
        print(ftp login Failed.exit.)
        sys.exit()
    ftp.cwd(ftp_backup_dir)    #设置FTP路径
 
    print(upload data...)
    try:
        ftp.storbinary('STOR ' + os.path.basename(newfile),open(newfile,'rb'),1024)    #上传备份文件
    except:
        print(upload Failed. check your permission.)
    
    print(delte old file...)
    try:
        ftp.delete(os.path.basename(oldfile))    #删除5天前的备份文件
    except:
        print(the old file in ftp doesn't exists,jumped.)
 
    print(ftp upload successful.exit...)
    ftp.quit()
 
if __name__== '__main__':
    upload()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐