from ctypes import *
import os
import sys
import ftplib
class KANFtp:
ftp = ftplib.FTP()
bIsDir = False
path = ""
def __init__(self, host):
self.ftp.connect( host )
def Login(self, user, passwd ):
self.ftp.login( user, passwd )
print self.ftp.welcome
def DownLoadFile( self, LocalFile, RemoteFile ):
file_handler = open( LocalFile, 'wb' )
self.ftp.retrbinary( "RETR %s" %( RemoteFile ), file_handler.write )
file_handler.close()
return True
def UpLoadFile( self, LocalFile, RemoteFile ):
if os.path.isfile( LocalFile ) == False:
return False
file_handler = open( LocalFile, "rb" )
self.ftp.storbinary( 'STOR %s'%RemoteFile, file_handler, 4096 )
file_handler.close()
return True
def UpLoadFileTree( self, LocalDir, RemoteDir ):
if os.path.isdir( LocalDir ) == False:
return False
LocalNames = os.listdir( LocalDir )
self.ftp.cwd( RemoteDir )
for Local in LocalNames:
src = os.path.join( LocalDir, Local)
if os.path.isdir( src ):
self.UpLoadFileTree( src, Local )
else:
self.UpLoadFile( src, Local )
self.ftp.cwd( ".." )
return
def DownLoadFileTree( self, LocalDir, RemoteDir ):
if os.path.isdir( LocalDir ) == False:
os.makedirs( LocalDir )
self.ftp.cwd( RemoteDir )
RemoteNames = self.ftp.nlst()
for file in RemoteNames:
Local = os.path.join( LocalDir, file )
if self.isDir( file ):
self.DownLoadFileTree( Local, file )
else:
self.DownLoadFile( Local, file )
self.ftp.cwd( ".." )
return
def show( self, list ):
result = list.lower().split( " " )
if self.path in result and "<dir>" in result:
self.bIsDir = True
def isDir( self, path ):
self.bIsDir = False
self.path = path
#this ues callback function ,that will change bIsDir value
self.ftp.retrlines( 'LIST', self.show )
return self.bIsDir
ftp = KANFtp('192.168.21.10')
ftp.Login('XXX','XXXX')
#ftp.DownLoadFile('TEST.TXT', 'public\\hechangmin\\TEST.TXT')#ok
#ftp.UpLoadFile('TEST.TXT', 'public\\hechangmin\\TEST.TXT')#ok
#ftp.DownLoadFileTree('HECM', 'public\\hechangmin\\xxx\\')#ok
ftp.UpLoadFileTree('ts',"Public\\hechangmin\\testFTP" )
print "ok!"
这个是我同事代码。我只是修改一小部分。本blog以流水账形式记录着学习的点点滴滴。
分享到:
相关推荐
本文将深入探讨如何使用Python构建一个基于GUI(图形用户界面)的FTP客户端,以提升文件操作的效率。 首先,让我们了解FTP(File Transfer Protocol),它是互联网上用于在不同计算机之间交换文件的标准协议。...
2. **ftplib**:这是Python标准库中的一个模块,提供FTP客户端功能。你可以使用它来连接到FTP服务器,上传、下载文件,执行目录操作等。 3. **pysftp**:它是基于Paramiko的一个简洁封装,专为SFTP操作设计,提供了...
在这个名为"FTP.rar"的压缩包中,包含的是一个Python实现的FTP客户端程序。通过Python的ftp_tpk标签,我们可以推断作者可能使用了一些特定的库或者自定义的方法来处理FTP连接和数据传输。 首先,我们来看看`ftp_...
整体逻辑 采用 PyQT 开发,程序整体是事件驱动的,点击某个按钮触发某个事件,再调用封装好的函数向服务器发消息即可。消息收发参考 Server,也对发送/接受指令做了封装,同时用装饰器实现了日志 (@message_log)、...
封装FTP函数意味着创建一个库,其中包含一系列接口,可以处理FTP会话的建立、登录、文件上传、下载、断开连接等功能。这通常涉及以下步骤: - 创建socket连接:使用`socket()`函数创建socket,`connect()`函数连接...
1. **连接FTP服务器**:首先,我们需要建立一个FTP连接。在Python中,可以使用`ftplib`模块中的`FTP`类来实现。在实例化`FTP`对象时,需要提供服务器地址、用户名和密码。 ```python from ftplib import FTP ftp =...
本项目实现了一个简易的FTP服务器与客户端,支持基本的FTP协议功能,包括用户登录、文件传输、目录操作等。项目分为FTP服务端和客户端两部分,服务端采用C语言编写,客户端提供了命令行和图形界面两种形式,图形界面...
然后,创建一个`FTP`对象,并与FTP服务器建立连接: ```python ftp = FTP() ftp.connect("IP", "port") ``` 这里,"IP"是FTP服务器的IP地址,"port"是服务器的FTP端口号,通常默认为21。 接着,使用`login`方法登录...
本文介绍了一个 Python 实现 FTP 上传文件或文件夹的实例,通过定义类和方法的方式,实现了 FTP 服务器的连接、文件上传以及文件夹的递归上传等功能。这对于需要自动化上传文件或文件夹的场景非常有用。此外,还介绍...
Python3 实现 FTP 服务功能(客户端)是一个用于与 FTP 服务器进行交互的应用程序,它允许用户执行常见的 FTP 命令,如列出目录、改变工作目录、上传和下载文件等。以下是对这个客户端实现的详细说明: 首先,...
`telnetlib`是Python标准库中的一个模块,用于实现Telnet协议。EasyTelnet.py可能实现了连接到远程服务器、发送命令、接收响应等功能。用户可以通过指定主机名和端口,调用`connect()`建立连接,然后使用`write()`...
为了进一步提高程序的灵活性和可维护性,你可以将上述步骤封装成一个函数或者类,接受FTP服务器信息、登录凭证和文件路径作为参数。这样,你就可以重复使用这个功能来下载不同FTP服务器上的文件,而无需每次都重新...
Python的跨平台特性意味着开发者可以在一个操作系统上开发程序,然后在另一个操作系统上运行,无需修改代码。Python官网提供了不同平台的安装包,同时还有众多社区和中文学习网站,如***,为学习Python提供了便利...
在本实例中,我们将专注于使用`pysftp`模块,它是一个Python封装的SSHv2库,支持SFTP(Secure File Transfer Protocol),可以提供比传统FTP更安全的数据传输。 首先,让我们深入了解一下`pysftp`模块。`pysftp`是...
7. **sqlite.py**:这个文件可能是数据库操作的封装,包含了连接SQLite数据库、创建日志表、插入日志记录等功能的Python代码。 8. **ftpdown_log.db**:这可能是数据库文件,用于存储FTP操作的日志数据。 9. **ftp...
FtpTools可能是一个包含FTP工具类的Python模块,它可能封装了连接、登录、文件操作等功能。例如,创建FTP对象、连接服务器(ftplib.FTP()),使用login()方法登录,使用cwd()或cd()改变目录,使用 storbinary() 或 ...
实例代码中还展示了如何创建一个类`MyFtp`来封装FTP操作,这提高了代码的可重用性和组织性。类中定义了`downloadFile()`方法来下载指定的文件,并提供了登录、关闭连接等辅助方法。另外,还给出了一个扩展的实例,该...
第一章:Python 介绍 * Python 由来和发展简介 * Python 项目开发流程 第二章:计算机核心基础 * 计算机组成原理 第三章:编程语言 * 编程语言介绍 * Python 是解释型的强类型动态语言 第四章:Python 解释器...
Python库`ftpvl`是专为Python开发人员设计的一个工具,用于处理FTP(文件传输协议)相关的任务。这个库的版本是0.1.4,兼容Python 2和Python 3,表明它能够跨这两个主要的Python版本提供一致的功能。`-py2.py3-none-...
在提供的`FtpProject`压缩包中,可能包含了一个封装好的FTP帮助类。这个类可能包含了以上所述的FTP连接、登录、上传等方法,便于在其他项目中复用。使用这样的帮助类,可以简化代码,提高代码的可维护性和复用性。 ...