Python ftplib 的替代方案?

3 投票
1 回答
4699 浏览
提问于 2025-04-18 13:33

我在找一个比Python的ftplib更快的FTP上传工具。使用Python的ftplib.FTP.storbinary上传文件时,它会先把文件按块读到内存里,然后再发送到服务器,这个过程是顺序进行的。这种方式速度比较慢。理想情况下,应该有一个线程提前读取至少一个块的大小,另一个线程则负责发送已经在内存中的数据。Python本身的速度可能也是个问题,不过无论如何,Ubuntu自带的FTP客户端(命令行)上传速度大约快60%。

我考虑过通过Python的子进程来使用Ubuntu的FTP客户端,但我真的想要ftplib支持的回调功能,这样可以在每次上传一个块后更新单个文件的上传进度(每上传一个块就调用一个Python函数)。另外,从Python调用Ubuntu的FTP客户端有点麻烦,因为它是设计成交互式的。

所以……有没有人推荐一个在Python中支持回调功能并且比Python的ftplib更快的FTP客户端?我也愿意尝试已经有Python封装的C/C++编译库。

补充:我刚发现了pycurl,可能符合我的需求。之前没注意到这个。还是很乐意听听其他建议!

1 个回答

4

我觉得pycURL可能是你最好的选择之一。我在这个网站上找到了一些早期的问题,跟你的问题有点相似,可能对你有帮助。

这里是那个问题的链接:Python库用于FTP上传/下载?

撰写回答