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爬虫数据分析挖掘,获取更多开源项目源码

posted @ 2020-09-03 20:02  Python研究者  阅读(423)  评论(0编辑  收藏  举报