• Python操作FTP服务器


    # coding: utf-8
    from ftplib import FTP
    import time
    import tarfile
    import os
    # !/usr/bin/python
    # -*- coding: utf-8 -*-
    
    from ftplib import FTP
    class MyFTP():
        def __init__(self,host, port,username, password):
            ftp_ = FTP()
            self.bufsize = 2048
            ftp_.connect(host,port)
            ftp_.login(username,password)
            print("登录成功")
            self.ftp=ftp_
    
        #从ftp下载文件
        def downloadfile(self, remotepath, localpath):
            with open(localpath, 'wb') as fp:
                self.ftp.retrbinary('RETR ' + remotepath, fp.write, self.bufsize)
                self.ftp.set_debuglevel(0)
    
        #从本地上传文件到ftp
        def uploadfile(self, remotepath, localpath):
            with open(localpath, 'rb') as fp:
                self.ftp.storbinary('STOR ' + remotepath, fp, self.bufsize)
                self.ftp.set_debuglevel(0)
    
        def get_file_list(self,path="web/images"):
            # 包含文件名的生成器
            for file in self.ftp.nlst(path):
                yield file
    
    # 单例模式
    myftp = MyFTP("ftp.****.com",290, "***", "****")
    # 通过myftp.ftp获得ftp对象
    
    if __name__ == "__main__":
        with myftp.ftp:
            # remotepath参数是远程服务器的目录绝对路径
            # myftp.downloadfile(remotepath="/qiaoervip/web/images/5.jpg", localpath="5.jpg")
            #调用本地播放器播放下载的视频
            # ftp.nlst()  # 获取目录下的文件
            print(myftp.get_file_list())
            print('web/images/2.jpg' in myftp.get_file_list())
            print('web/images/2.jpg' in myftp.get_file_list())
            # myftp.uploadfile(remotepath="/qiaoervip/web/images/5.jpg", localpath="5.jpg")
    
    

    补充

    #coding=utf-8
    ftp登陆连接
    from ftplib import FTP  # 加载ftp模块
    
    ftp = FTP()  # FTP对象
    ftp.set_debuglevel(2)  # 打开调试级别2,显示详细信息
    ftp.connect("你的IP", "port")  # 连接的ftp sever和端口
    ftp.login("user", "password")  # 连接的用户名,密码
    ftp.getwelcome()  # 返回欢迎信息
    ftp.cmd("xxx/xxx")  # 进入远程目录
    bufsize = 1024  # 设置的缓冲区大小
    filename = "filename.txt"  # 需要下载的文件
    file_handle = open(filename, "wb").write  # 以写模式在本地打开文件
    ftp.retrbinaly("RETR %s"%filename, file_handle, bufsize)  # 接收服务器上文件并写入本地文件
    ftp.set_debuglevel(0)  # 关闭调试模式
    ftp.quit()  # 退出ftp
    
    # ftp相关命令操作
    ftp.cwd(pathname)  # 设置FTP当前操作的路径
    ftp.dir()  # 显示目录下所有目录信息
    ftp.nlst()  # 获取目录下的文件
    ftp.mkd(pathname)  # 新建远程目录
    ftp.pwd()  # 返回当前所在位置
    ftp.rmd(dirname)  # 删除远程目录
    ftp.delete(filename)  # 删除远程文件
    ftp.rename(fromname, toname)  # 将fromname修改名称为toname。
    ftp.storbinaly("STOR filename.txt", file_handel, bufsize)  # 上传目标文件
    ftp.retrbinary("RETR filename.txt", file_handel, bufsize)  # 下载FTP文件
    
    
  • 相关阅读:
    第一篇博文,纪念下
    HDU 1026 Ignatius and the Princess I (bfs+存储路径)
    acer Empowering Technology下载(转)
    设定sql server定期自动备份数据库
    web.config加密解密
    WCF安全性资料
    SharePoint中CAML日期格式
    Map Reduce the Free Lunch is not over?(转)
    asp.net与javascript
    获取当前build的版本信息
  • 原文地址:https://www.cnblogs.com/demiao/p/13577376.html
Copyright © 2020-2023  润新知