• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >python > Python FTP操作类代码分享

Python FTP操作类代码分享

作者: 字体:[增加 减小] 来源:互联网

通过本文主要向大家介绍了python ftp,python ftp下载,python ftp.nlst,python ftp上传,python ftp模块等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

'''''
    ftp自动下载、自动上传脚本,可以递归目录操作
''' 

from ftplib import FTP
import os, sys, string, datetime, time
import socket  

class FtpClient:

    def __init__(self, host, user, passwd, remotedir, port=21):
        self.hostaddr = host
        self.username = user
        self.password = passwd
        self.remotedir  = remotedir          
        self.port     = port
        self.ftp      = FTP()
        self.file_list = []  

    def __del__(self):
        self.ftp.close()  

    def login(self):
        ftp = self.ftp
        try:
            timeout = 60
            socket.setdefaulttimeout(timeout)
            ftp.set_pasv(True)
            ftp.connect(self.hostaddr, self.port)
            print 'Connect Success %s' %(self.hostaddr)
            ftp.login(self.username, self.password)
            print 'Login Success %s' %(self.hostaddr)
            debug_print(ftp.getwelcome())
        except Exception:
            deal_error("Connect Error or Login Error")
        try:
            ftp.cwd(self.remotedir)
        except(Exception):
            deal_error('Change Directory Error')  

    def is_same_size(self, localfile, remotefile):
        try:
            remotefile_size = self.ftp.size(remotefile)
        except:
            remotefile_size = -1
        try:
            localfile_size = os.path.getsize(localfile)
        except:
            localfile_size = -1
        debug_print('lo:%d  re:%d' %(localfile_size, remotefile_size),)
        if remotefile_size == localfile_size:
            return 1
        else:
            return 0

    def download_file(self, localfile, remotefile):
        if self.is_same_size(localfile, remotefile):
            return
        else:
            pass
        file_handler = open(localfile, 'wb')
        self.ftp.retrbinary('RETR %s'%(remotefile), file_handler.write)
        file_handler.close()

    def download_files(self, localdir='./', remotedir='./'):
        try:
            self.ftp.cwd(remotedir)
        except:
            return
        if not os.path.isdir(localdir):
            os.makedirs(localdir)
        self.file_list = []
        self.ftp.dir(self.get_file_list)
        remotenames = self.file_list
        for item in remotenames:
            filetype = item[0]
            filename = item[1]
            local = os.path.join(localdir, filename)
            if filetype == 'd':
                self.download_files(local, filename)
            elif filetype == '-':
                self.download_file(local, filename)
        self.ftp.cwd('..')  

    def upload_file(self, localfile, remotefile):
        if not os.path.isfile(localfile):
            return
        if self.is_same_size(localfile, remotefile):
            return
        file_handler = open(localfile, 'rb')
        self.ftp.storbinary('STOR %s' %remotefile, file_handler)
        file_handler.close()  

    def upload_files(self, localdir='./', remotedir = './'):
        if not os.path.isdir(localdir):
            return
        localnames = os.listdir(localdir)
        self.ftp.cwd(remotedir)
        for item in localnames:
            src = os.path.join(localdir, item)
            if os.path.isdir(src):
                try:
                    self.ftp.mkd(item)
                except:
                    debug_print('Directory Exists %s' %item)
  &n

您可能想查找下面的文章:

  • python实现FTP服务器服务的方法
  • python实现FTP服务器服务的方法
  • Python中的FTP通信模块ftplib的用法整理
  • Python中的FTP通信模块ftplib的用法整理
  • Python ftp上传文件
  • python实现的简单FTP上传下载文件实例
  • python实现简单ftp客户端的方法
  • python实现支持目录FTP上传下载文件的方法
  • Python使用ftplib实现简易FTP客户端的方法
  • python通过ftplib登录到ftp服务器的方法

相关文章

  • python3序列化与反序列化用法实例
  • Python代码解决RenderView窗口not found问题
  • Django Admin实现上传图片校验功能
  • python实现基于两张图片生成圆角图标效果的方法
  • Python不规范的日期字符串处理类
  • Python中装饰器的一个妙用
  • python装饰器与递归算法详解
  • 基于python的汉字转GBK码实现代码
  • python根据文件大小打log日志
  • 关于Python元祖,列表,字典,集合的比较

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • python每次处理固定个数的字符的方法总结
    • Python os模块介绍
    • Python 文件和输入输出小结
    • 详解Django框架中用户的登录和退出的实现
    • 从零学Python之hello world
    • centos6.7安装python2.7.11的具体方法
    • pymssql数据库操作MSSQL2005实例分析
    • python三元运算符实现方法
    • Python使用urllib2模块抓取HTML页面资源的实例分享
    • python遍历 truple list dictionary的几种方法总结

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有