- 浏览: 378529 次
- 性别:
- 来自: 长春
文章分类
- 全部博客 (319)
- java socket (1)
- java ,IT , (14)
- php Cannot send session cache limiter - headers already sent (1)
- java ,IT ,淘宝 (1)
- mysql java (1)
- wml wap (1)
- jsp (1)
- python (27)
- 第一种方法满足要求 (1)
- java android (2)
- 娱乐,经验 (0)
- java (1)
- 经验 (1)
- linux (4)
- mongodb (1)
- php (2)
- hadoop (1)
- 转载,分享 (1)
- django (1)
- mongo (1)
- java web project (1)
- python3 (1)
- go (1)
最新评论
-
lu56898:
ubuntu中 加了没效果唉
python解决 'ascii' codec can't encode characters -
cooler1217:
DiaoCow 写道不知道LZ想取什么? 但看了下LZ的gre ...
grep awk 应用 -
DiaoCow:
不知道LZ想取什么? 但看了下LZ的grep使用,想了下其实可 ...
grep awk 应用 -
cooler1217:
外国人叫:条条大路通罗马,中国人叫:小鸡不撒尿,各有各的道。完 ...
linux 更改yum地址 -
libla:
个人更喜欢debian极度鄙视yum这种依赖于第三方语言(py ...
linux 更改yum地址
功能:ftp断点上传下载
仅供参考:
仅供参考:
#encoding=utf-8 ''' Created on 2012-3-14 @author: cooler ''' from ftplib import FTP import sys import os.path class MyFTP(FTP): ''''' conncet to FTP Server ''' def __init__(self): print 'make a object' def ConnectFTP(self,remoteip,remoteport,loginname,loginpassword): ftp=MyFTP() try: ftp.connect(remoteip,remoteport,600) print 'success' except: print "conncet failed1" return (0,'conncet failed') else: try: ftp.login(loginname,loginpassword) print 'login success' except: print 'login failed' return (0,'login failed') else: print 'return 1' return (1,ftp) def download(self,remoteHost,remotePort,loginname,loginpassword,remotePath,localPath): #connect to the FTP Server and check the return res = self.ConnectFTP(remoteHost,remotePort,loginname,loginpassword) if(res[0]!=1): print res[1] sys.exit() #change the remote directory and get the remote file size ftp=res[1] ftp.set_pasv(0) dires = self.splitpath(remotePath) if dires[0]: ftp.cwd(dires[0]) remotefile=dires[1] print dires[0]+' '+ dires[1] fsize=ftp.size(remotefile) if fsize==0 : return #check local file isn't exists and get the local file size lsize=0L if os.path.exists(localPath): lsize=os.stat(localPath).st_size if lsize >= fsize: print 'local file is bigger or equal remote file' return blocksize=1024 cmpsize=lsize ftp.voidcmd('TYPE I') conn = ftp.transfercmd('RETR '+remotefile,lsize) lwrite=open(localPath,'ab') while True: data=conn.recv(blocksize) if not data: break lwrite.write(data) cmpsize+=len(data) print '\b'*30,'download process:%.2f%%'%(float(cmpsize)/fsize*100), lwrite.close() ftp.voidcmd('NOOP') ftp.voidresp() conn.close() ftp.quit() def upload(self,remotehost,remoteport,loginname,loginpassword,remotepath,localpath,callback=None): if not os.path.exists(localpath): print "Local file doesn't exists" return self.set_debuglevel(2) res=self.ConnectFTP(remotehost,remoteport,loginname,loginpassword) if res[0]!=1: print res[1] sys.exit() ftp=res[1] remote=self.splitpath(remotepath) ftp.cwd(remote[0]) rsize=0L try: rsize=ftp.size(remote[1]) except: pass if (rsize==None): rsize=0L lsize=os.stat(localpath).st_size if (rsize==lsize): print 'remote filesize is equal with local' return if (rsize<lsize): localf=open(localpath,'rb') localf.seek(rsize) ftp.voidcmd('TYPE I') datasock,esize=ftp.ntransfercmd("STOR "+remote[1],rsize) cmpsize=rsize while True: buf=localf.read(1024) if not len(buf): print '\rno data break' break datasock.sendall(buf) if callback: callback(buf) cmpsize+=len(buf) print '\b'*30,'uploading %.2f%%'%(float(cmpsize)/lsize*100), if cmpsize==lsize: print '\rfile size equal break' break datasock.close() print 'close data handle' localf.close() print 'close local file handle' ftp.voidcmd('NOOP') print 'keep alive cmd success' ftp.voidresp() print 'No loop cmd' ftp.quit() def splitpath(self,remotepath): position=remotepath.rfind('/') return (remotepath[:position+1],remotepath[position+1:]) if __name__=='__main__': lf = MyFTP() lf.ConnectFTP("192.168.100.237","21","cooler","123123") lf.download("192.168.100.237","21","cooler","123123","/tmp/cooler/boke.rar","C:/cooler/boke.rar") lf.upload("192.168.100.237","21","cooler","123123","/tmp/cooler/boke1.rar","C:/cooler/boke.rar")
发表评论
-
MacOS M1 安装rocketmq-client-python
2021-11-25 17:26 10011 下载 https://github.com/apache ... -
python克隆数据 copy
2013-03-07 14:16 929现在看到了 Python 优美的设计。那下面的问题是,如果我们 ... -
python Queue模块
2013-02-22 17:07 9712011-04-20 17:11:05| 分类: Pyth ... -
[emerg] 10464#0: unknown directive "ssl"
2013-02-01 11:57 3840#yum install openssl #yum insta ... -
python flask应用 Principal 授权认证
2012-12-14 11:56 1844''' Created on 2012-6-14 ... -
sitecustomize.py 用法
2012-11-19 15:48 24011、在python安装目录下的lib下的site-packag ... -
加菲小小小猫 python菜鸟侃大山第一弹--目录
2012-06-26 13:33 0欢迎来到加菲小小小猫菜鸟讲堂,这期课程共计20课时,主要内容为 ... -
加菲小小小猫 python菜鸟侃大山第一弹--目录
2012-06-26 11:06 4欢迎来到加菲小小小猫菜鸟讲堂,这期课程共计20 ... -
TypeError: 'module' object is not callable 解决
2012-04-17 16:03 3944原文地址:http://hi.baidu.com/bsndhs ... -
python 自定义py文件中方法导入
2012-04-06 14:45 2795例子: 工程 ... -
pymongo 模糊查询
2012-04-01 17:32 5875如果是mongodb的客户端下 直接输入命令 db.devi ... -
pymongo $addToSet 和 $set 区别
2012-03-28 15:35 2430conn = Connection("127 ... -
python解决 'ascii' codec can't encode characters
2012-03-27 18:08 12133异常: 'ascii' codec can't encode ... -
python mongodb time的妙用
2012-03-19 14:41 1030需要把这条日志的时间放到临近的5分钟内, 时间段为:0,5,1 ... -
python 百分号使用
2012-03-09 12:17 3989原文地址 http://developer ... -
celery+ rabbitMq + python linux是下配置 序
2012-02-27 04:42 940我安装的时候就遇到了很多麻烦,主要是跟中linux包的依赖。。 ... -
logging 使用 python
2012-02-22 17:50 848转载:http://blog.csdn.net/yatere/ ... -
python **args * args
2012-02-20 18:12 793转载 http://jimi68.iteye.com/blo ... -
python paramiko pycropto 安装
2012-02-17 19:30 998http://www.voidspace.org.uk/pyt ... -
python 多线程
2012-02-17 16:18 1034基础不必多讲,还是直接进入python。 Pyth ...
相关推荐
FTP断点续传是一项重要的功能,尤其是在处理大文件时,可以提高效率并避免因网络问题导致的传输失败。在Python中实现断点续传通常需要以下步骤: 1. **连接到FTP服务器**:使用ftplib中的FTP类,通过`FTP()`构造...
python多线程,断点续传下载程序,功能比较简单,可以进行二次开发。实现更好用的 功能。
3. **文件传输**:支持文件上传和下载,其中特别关注断点续传功能的实现。 ##### 服务端设计思路 1. **用户管理**:包括用户信息的存储与验证。 2. **命令处理**:根据客户端发送的命令执行相应操作,如列出文件...
在"FileUpLoad"这个文件中,很可能包含了实现大文件上传和支持断点续传的代码示例、库、教程或者配置文件。开发者可以通过研究这些内容来学习如何在自己的项目中实现类似的功能。这涉及到对网络编程、前端JavaScript...
python ftp断点上传下载,支持主、从模式断点上传及下载
实现FTP断点续传需要以下步骤: 1. 检查文件是否存在:在开始上传之前,检查服务器上是否已有该文件,如果存在则获取其当前大小。 2. 记录本地文件状态:保存本地文件的当前位置(即已上传的字节数)。 3. 设置FTP...
自己写的单任务FTP断点续传程序,新创建的任务会存到日志文件中(可存储多个任务的日志),异常中断重启时可以选择指定任务继续下载。程序比较简单,也可以说比较简陋,有些问题并未细致的考虑,比如磁盘空间不足等...
例如,使用C++的libcurl库或者Python的ftplib库可以方便地处理FTP断点续传。开发者需要处理好错误检测、状态保存、重试机制等复杂性。 工具方面,有许多现成的FTP客户端软件如FileZilla、WinSCP等,它们内置了断点...
这个压缩包"商业编程-源码-FTP、HTTP 多线程断点续传下载文件.zip"包含的源码着重展示了如何利用FTP(文件传输协议)和HTTP(超文本传输协议)实现多线程的断点续传下载功能,这在大型文件下载或网络环境不稳定的...
总的来说,FTP及断点续传原理是网络开发和运维中的基础技能,了解和掌握这些知识对于进行文件传输相关的系统设计和故障排查至关重要。通过学习提供的资源,你可以深入理解FTP的工作机制,以及如何实现断点续传功能,...
对于FTP协议,虽然在本例中未实现,但FTP同样支持断点续传,通过REST(Restart from Position)命令可以指定从哪个位置继续下载。 在提供的压缩包文件中,"www.pudn.com.txt"可能是包含有关下载程序源代码、说明或...
通过理解FTP协议的工作原理,结合多线程技术和断点续传机制,开发者可以创建高效、可靠的文件下载应用程序。在实际项目中,选择合适的FTP库,并遵循最佳实践,能有效提高文件传输的效率和可靠性。
FTP(File Transfer Protocol)协议是Internet上用于在主机之间传输文件的标准协议,它允许用户从一台计算机(客户端)向另一台计算机(服务器)上传或下载文件。多线程和断点续传是FTP协议实现中两个重要的技术特性...
在Python编程中,将Excel表格数据上传到FTP服务器是一项常见的任务,特别是在数据处理和文件共享的场景下。这里,我们主要关注如何使用Python的库来实现这个功能,以及FTP网络编程的基本概念。 首先,我们需要了解...
在实现FTP断点下载和上传时,通常会使用编程语言中的FTP库或工具。例如,在Java中,可以使用Apache Commons Net库,它提供了FTPClient类来支持FTP功能,包括断点续传。Python中则有ftplib模块,同样可以处理此类...
本文将深入探讨一个特定的文件传输解决方案:支持多线程断点续传的FTP程序,该程序同时包含服务端和客户端,并且具备蓝牙传输功能。这样的系统设计能够显著提高文件传输效率,尤其是在网络不稳定或大文件传输时,其...
配置文件为.ini文件;put和get区分一下源和目的路径,基本配置项即说明如下: [ftp]:ftp基本信息 [common] 公共的配置 如日志信息,传输模式,是否递归,是否删除等 [src_path] 源路径信息,如果是get,此项为远端...
二、ftp断点续传 1. ftp协议基础:FTP(文件传输协议)是互联网上用于文件传输的标准协议。与HTTP不同,FTP天生支持断点续传。 2. REST (Restart)命令:FTP提供REST命令,允许客户端指定一个文件的偏移量,服务器...
Python FTP Get是一个常见的任务,它涉及到使用Python编程语言来实现FTP(File Transfer Protocol)客户端功能,以便从远程服务器上下载...在实际应用中,可以根据需求进行扩展,比如实现多线程下载、断点续传等功能。