2005年07月22日 星期五 09:54
求教,如何用python写一个简单的能够实现断点续传的ftp客户端,多谢了
2005年07月22日 星期五 10:29
最简单的利用ftp命令就可以了,get ,reget。要写得更好一些,最好去看一下ftp协议。 2005/7/22, nicran <nicran at gmail.com>: > 求教,如何用python写一个简单的能够实现断点续传的ftp客户端,多谢了 > > _______________________________________________ > python-chinese list > python-chinese at lists.python.cn > http://python.cn/mailman/listinfo/python-chinese > > > -- Blog:http://www.donews.net/changzheng
2005年07月22日 星期五 11:16
首先你需要了解ftp协议,然后决定是CUI还是GUI or WEB界面 然后再用python相关的库比如ftp或者网络库来实现ftp协议 也可以利用别人已经做好的ftp协议的实现,比如Python libs里的sockets, ftplib, urllib 或者twisted.client里的ftp协议 建议你先从ftp相关的RFC开始看,然后决定是自己实现,还是使用别人做好的库 在05-7-22,nicran <nicran at gmail.com> 写道: > > 求教,如何用python写一个简单的能够实现断点续传的ftp客户端,多谢了 > > _______________________________________________ > python-chinese list > python-chinese at lists.python.cn > http://python.cn/mailman/listinfo/python-chinese > > > -- I'm the one, powered by nEO -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20050722/77520425/attachment.html
2005年07月22日 星期五 11:34
参考文档中的ftplib模块。 在 05-7-22,nicran<nicran at gmail.com> 写道: > 求教,如何用python写一个简单的能够实现断点续传的ftp客户端,多谢了 > > _______________________________________________ > python-chinese list > python-chinese at lists.python.cn > http://python.cn/mailman/listinfo/python-chinese > > > -- I like python! My Donews Blog: http://www.donews.net/limodou New Google Maillist: http://groups-beta.google.com/group/python-cn
2005年07月22日 星期五 12:00
nicran wrote: > 求教,如何用python写一个简单的能够实现断点续传的ftp客户端,多谢了 可以通过REST命令指定文件偏移量。具体的你查查FTP协议好了。 -- Qiangning Hong I'm usually annoyed by IDEs because, for instance, they don't use VIM as an editor. Since I'm hooked to that, all IDEs I've used so far have failed to impress me. -- Sybren Stuvel @ c.l.python Get Firefox! <http://www.spreadfirefox.com/?q=affiliates&id=67907&t=1>
2005年07月22日 星期五 12:42
;) 我只是需要一个最简单的实现,如果需要阅读那么多的东西,就觉得没必要投资那么多时间了。 我知道如何用ftplib来retrieve文件,但是怎么实现断点续传呢?有这样的例子最好了。 anyway, 多谢各位大侠提供的各种线索。 在 05-7-22,nEO<gentoo.cn at gmail.com> 写道: > 首先你需要了解ftp协议,然后决定是CUI还是GUI or WEB界面 > 然后再用python相关的库比如ftp或者网络库来实现ftp协议 > 也可以利用别人已经做好的ftp协议的实现,比如Python libs里的sockets, ftplib, urllib > 或者twisted.client里的ftp协议 > > 建议你先从ftp相关的RFC开始看,然后决定是自己实现,还是使用别人做好的库 > > 在05-7-22,nicran <nicran at gmail.com> 写道: > > 求教,如何用python写一个简单的能够实现断点续传的ftp客户端,多谢了 > > > > _______________________________________________ > > python-chinese list > > python-chinese at lists.python.cn > > http://python.cn/mailman/listinfo/python-chinese > > > > > > > > > > -- > I'm the one, powered by nEO
2005年07月22日 星期五 14:04
FTP对象的retrbinary方法的最后一个参数指定重传的位置。 retrbinary( command, callback[, maxblocksize[, rest]]) __ Best Regards, Kebo Wang >-----Original Message----- >From: python-chinese-bounces at lists.python.cn >[mailto:python-chinese-bounces at lists.python.cn] On Behalf Of nicran >Sent: Friday, July 22, 2005 12:43 PM >To: nEO >Cc: python-chinese at lists.python.cn >Subject: Re: [python-chinese] 如何用python写一个简单的能够实现断点续传的ftp 客户端 > >;) 我只是需要一个最简单的实现,如果需要阅读那么多的东西,就觉得没必要投资那 么多时间了。 > >我知道如何用ftplib来retrieve文件,但是怎么实现断点续传呢?有这样的例子最好 了。 > >anyway, 多谢各位大侠提供的各种线索。 > >在 05-7-22,nEO<gentoo.cn at gmail.com> 写道: >> 首先你需要了解ftp协议,然后决定是CUI还是GUI or WEB界面 >> 然后再用python相关的库比如ftp或者网络库来实现ftp协议 >> 也可以利用别人已经做好的ftp协议的实现,比如Python libs里的sockets, ftplib, urllib >> 或者twisted.client里的ftp协议 >> >> 建议你先从ftp相关的RFC开始看,然后决定是自己实现,还是使用别人做好的库 >> >> 在05-7-22,nicran <nicran at gmail.com> 写道: >> > 求教,如何用python写一个简单的能够实现断点续传的ftp客户端,多谢了 >> > >> > _______________________________________________ >> > python-chinese list >> > python-chinese at lists.python.cn >> > http://python.cn/mailman/listinfo/python-chinese >> > >> > >> > >> >> >> >> -- >> I'm the one, powered by nEO >
2005年07月22日 星期五 14:07
qiangninghong其实已经说了,使用rest命令,下面是我从python的库文档中找到的一些函数说明: retrbinary( command, callback[, maxblocksize[, rest]]) Retrieve a file in binary transfer mode. command should be an appropriate "RETR" command: 'RETR filename'. The callback function is called for each block of data received, with a single string argument giving the data block. The optional maxblocksize argument specifies the maximum chunk size to read on the low-level socket object created to do the actual transfer (which will also be the largest size of the data blocks passed to callback). A reasonable default is chosen. rest means the same thing as in the transfercmd() method. transfercmd( cmd[, rest]) Initiate a transfer over the data connection. If the transfer is active, send a "EPRT" or "PORT" command and the transfer command specified by cmd, and accept the connection. If the server is passive, send a "EPSV" or "PASV" command, connect to it, and start the transfer command. Either way, return the socket for the connection. If optional rest is given, a "REST" command is sent to the server, passing rest as an argument. rest is usually a byte offset into the requested file, telling the server to restart sending the file's bytes at the requested offset, skipping over the initial bytes. Note however that RFC 959 requires only that rest be a string containing characters in the printable range from ASCII code 33 to ASCII code 126. The transfercmd() method, therefore, converts rest to a string, but no check is performed on the string's contents. If the server does not recognize the "REST" command, an error_reply exception will be raised. If this happens, simply call transfercmd() without a rest argument. 从上面的说明可以看到使用这些方法时指定rest应该就可以了。你可以试一试。 在 05-7-22,nicran<nicran at gmail.com> 写道: > ;) 我只是需要一个最简单的实现,如果需要阅读那么多的东西,就觉得没必要投资那么多时间了。 > > 我知道如何用ftplib来retrieve文件,但是怎么实现断点续传呢?有这样的例子最好了。 > > anyway, 多谢各位大侠提供的各种线索。 > > 在 05-7-22,nEO<gentoo.cn at gmail.com> 写道: > > 首先你需要了解ftp协议,然后决定是CUI还是GUI or WEB界面 > > 然后再用python相关的库比如ftp或者网络库来实现ftp协议 > > 也可以利用别人已经做好的ftp协议的实现,比如Python libs里的sockets, ftplib, urllib > > 或者twisted.client里的ftp协议 > > > > 建议你先从ftp相关的RFC开始看,然后决定是自己实现,还是使用别人做好的库 > > > > 在05-7-22,nicran <nicran at gmail.com> 写道: > > > 求教,如何用python写一个简单的能够实现断点续传的ftp客户端,多谢了 > > > > > > _______________________________________________ > > > python-chinese list > > > python-chinese at lists.python.cn > > > http://python.cn/mailman/listinfo/python-chinese > > > > > > > > > > > > > > > > > -- > > I'm the one, powered by nEO > > _______________________________________________ > python-chinese list > python-chinese at lists.python.cn > http://python.cn/mailman/listinfo/python-chinese > > > -- I like python! My Donews Blog: http://www.donews.net/limodou New Google Maillist: http://groups-beta.google.com/group/python-cn
2005年07月22日 星期五 18:47
如果用python提供的ftplib模块的话,可以这样: 假定ftp是一个ftplib.FTP。 1、先确定FTP SERVER支持续传: res = ftp.sendcmd('REST 100') if res[:3] == '350': #350表示支持续传 ftp.sendcmd('REST 0') 2、你得自己记住续传的offset,假定是rest。利用FTP.retrbinary( command, callback[, maxblocksize[, rest]]) 函数实现续传,请参考python documentation。 其中的callback是由你指定的函数,形式是这样的: def get_buffer(buf):..... buf是一个包含下载数据的字符串,FTP每下载一个block就调用一次get_buffer函数。你所要做的就是把这些数据写入一个本地文件。 上面的方法都假定你已经连接并登录了FTP。连接和登录的方法python documentation讲得很清晰,还有一个小例子。 在 05-7-22,nicran<nicran at gmail.com> 写道: > 求教,如何用python写一个简单的能够实现断点续传的ftp客户端,多谢了 > > _______________________________________________ > python-chinese list > python-chinese at lists.python.cn > http://python.cn/mailman/listinfo/python-chinese > > >
Zeuux © 2025
京ICP备05028076号