zoukankan      html  css  js  c++  java
  • DAY 205 python使用ftplib模块实现FTP文件的上传下载

    python已经默认安装了ftplib模块,用其中的FTP类可以实现FTP文件的上传下载

    FTP文件上传下载

    复制代码
    # coding:utf8
    from ftplib import FTP
    
    
    def upload(f, remote_path, local_path):
        fp = open(local_path, "rb")
        buf_size = 1024
        f.storbinary("STOR {}".format(remote_path), fp, buf_size)
        fp.close()
    
    
    def download(f, remote_path, local_path):
        fp = open(local_path, "wb")
        buf_size = 1024
        f.retrbinary('RETR {}'.format(remote_path), fp.write, buf_size)
        fp.close()
    
    
    if __name__ == "__main__":
        ftp = FTP()
        ftp.connect("x.x.x.x", 21)      # 第一个参数可以是ftp服务器的ip或者域名,第二个参数为ftp服务器的连接端口,默认为21
        ftp.login(username, password)     # 匿名登录直接使用ftp.login()
        ftp.cwd("tmp")                # 切换到tmp目录
        upload(ftp, "ftp_a.txt", "a.txt")   # 将当前目录下的a.txt文件上传到ftp服务器的tmp目录,命名为ftp_a.txt
        download(ftp, "ftp_a.txt", "b.txt")  # 将ftp服务器tmp目录下的ftp_a.txt文件下载到当前目录,命名为b.txt
        ftp.quit()
    复制代码

    FTP对象常用方法

    ftp.cwd(path)                    设置FTP当前操作的路径,同linux中的cd

    ftp.dir()                             显示目录下所有信息

    ftp.nlst()                            获取目录下的文件,显示的是文件名列表

    ftp.mkd(directory)             新建远程目录

    ftp.rmd(directory)              删除远程目录

    ftp.rename(old, new)         将远程文件old重命名为new

    ftp.delete(file_name)          删除远程文件

    ftp.storbinary(cmd, fp, bufsize)             上传文件,cmd是一个存储命令,可以为"STOR filename.txt", fp为类文件对象(有read方法),bufsize设置缓冲大小

    ftp.retrbinary(cmd, callback, bufsize)              下载文件,cmd是一个获取命令,可以为"RETR filename.txt", callback是一个回调函数,用于读取获取到的数据块

  • 相关阅读:
    Java 开发环境配置
    kettle脚本定时任务不执行
    python 列表之队列
    tensorflow训练过程中内存溢出
    关于 numpy.array和list之间的转换
    vscode 小笔记
    【python2/3坑】从gensim的Word2Vec.load()的中文vector模型输出时显示unicode码
    WingIDE用法笔记
    numpy.ndarray类型的数组元素输出时,保留小数点后4位
    tensorboard 用法
  • 原文地址:https://www.cnblogs.com/DEJAVU888/p/15303230.html
Copyright © 2011-2022 走看看