• Python 使用 FTP 协议上传下载文件 之 ftplib


    Python 搭建 ftp 服务器

    实验未成功,先记下代码,后面看看如何修改

    from pyftpdlib.authorizers import DummyAuthorizer
    from pyftpdlib.handlers  import FTPHandler
    from pyftpdlib.servers import FTPServer
    
    # 实例化DummyAuthorizer来创建ftp用户
    authorizer = DummyAuthorizer()
    # 参数:用户名,密码,目录,权限
    authorizer.add_user('test', '258', r'C:Users', perm='elradfmwMT')
    # 匿名登录
    # authorizer.add_anonymous('/home/nobody')
    handler = FTPHandler
    handler.authorizer = authorizer
    # 参数:IP,端口,handler
    server = FTPServer(('10.7.133.47', 21), handler)    #设置为0.0.0.0为本机的IP地址
    server.serve_forever()

    上传下载单个文件

    from ftplib import FTP
    
    ### 连接服务器
    ftp = FTP()                         # 设置变量
    # ftp.set_debuglevel(2)         # 打开调试级别,2显示详细信息,0关闭调试模式
    ftp.connect('10.68.3.137', 21)       # 连接的ftp sever和端口
    ftp.login('ftpsafe', 'work1,hard')  # 用户名,密码,如果匿名登录则用空串代替即可
    
    
    ### 上传文件
    bufsize = 1024
    fp = open('test.txt', 'rb') # 本地文件
    cmd = 'STOR 01/test2.txt'   # 上传后的文件名
    ftp.storbinary(cmd, fp, bufsize)     # storbinary是以二进制形式上传文件
    # cmd: STOR命令,是FTP的一个命令,后面需要加上保存文件的路径及文件名
    # fp: 一个打开的文件对象,‘rb’,以二进制形式打开文件
    
    
    ### 下载文件
    bufsize = 1024
    file_handle = open('new.txt', 'wb')   # 以写模式在本地打开文件
    ftp.retrbinary('RETR' + '01/test2.txt', fp.write, bufsize)  # 接收服务器上文件并写入本地文件

    其他操作

    ftp.set_debuglevel(2) # 打开调试级别2,显示详细信息
    ftp.set_debuglevel(0) # 关闭调试模式
    ftp.set_pasv(0) #0主动模式 1 #被动模式
    print(ftp.getwelcome()) #打印出欢迎信息
    
    ftp.cwd('/upload/')     # 切换到指定路径
    ftp.pwd() # 返回当前所在位置
    ftp.dir()       # 显示目录下文件信息, 类似 ls
    ftp.mkd(pathname) # 新建远程目录
    ftp.rmd(dirname) # 删除远程目录
    filename_list = ftp.nlst()  # 返回一个文件名列表
    ## 参数为空代表当前目录,也可指定目录
    ## 只输出第一层文件列表
    
    ftp.delete(filename) # 删除远程文件
    ftp.rename(fromname, toname) # 将fromname修改名称为toname
    
    ftp.quit() # 退出ftp

    更多用法见参考资料

    参考资料:

    https://www.cnblogs.com/huzixia/p/10389945.html#label1  Python实现FTP服务功能

    https://blog.csdn.net/ouyang_peng/article/details/79271113  Python实现的FTP上传和下载功能

    https://blog.csdn.net/qq_21422005/article/details/84546973

  • 相关阅读:
    截图插件
    断点续传
    sql server 将日期减一天
    C# 输出24小时格式时间
    蓝桥 凑平方数
    九宫重排
    HDU 1584
    HDU 2612 (两边一起)
    HDU 1016 Prime Ring Problem
    全排列、排列、排列组合
  • 原文地址:https://www.cnblogs.com/yanshw/p/14781403.html
Copyright © 2020-2023  润新知