zoukankan      html  css  js  c++  java
  • 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文件

    关注公众号:Python爬虫数据分析挖掘,获取更多开源项目源码

    耐得住寂寞,才能登得顶
    Gitee码云:https://gitee.com/lyc96/projects
  • 相关阅读:
    如何写好软件需求说明?
    怎么做,与为什么?[转]
    WCF学习中遇到的一些问题
    删除数据库中所有表、视图以及存储过程
    如何获取Repeater的当前行号
    Asp.Net 获取FileUpload控件的文件路径、文件名、扩展名
    IP地址通过WebService得到城市
    springboot、intellij与docker的结合
    开源GIS软件初探
    Statement接口提供的execute、executeQuery和executeUpdate之间的区别
  • 原文地址:https://www.cnblogs.com/chenlove/p/14038657.html
Copyright © 2011-2022 走看看