Python的替代品';什么是ftplib?

Python的替代品';什么是ftplib?,python,ftp,Python,Ftp,为了提高速度,我正在寻找python的ftplib的替代品。在执行FTP上载时,python的ftplib.FTP.storbinary会顺序读取内存,然后以指定块大小的块发送到服务器,直到上载文件为止。正因为如此,它根本不是很快。理想情况下,一个线程将持续读取至少一个块大小,另一个线程将始终发送内存中已经存在的块。python本身的速度也可能是一个因素,但无论如何,Ubuntu的本地FTP客户端(命令行)上传速度要快60% 我曾考虑过通过python子进程使用Ubuntu的原生FTP客户端,但

为了提高速度,我正在寻找python的ftplib的替代品。在执行FTP上载时,python的ftplib.FTP.storbinary会顺序读取内存,然后以指定块大小的块发送到服务器,直到上载文件为止。正因为如此,它根本不是很快。理想情况下,一个线程将持续读取至少一个块大小,另一个线程将始终发送内存中已经存在的块。python本身的速度也可能是一个因素,但无论如何,Ubuntu的本地FTP客户端(命令行)上传速度要快60%

我曾考虑过通过python子进程使用Ubuntu的原生FTP客户端,但我真的希望ftplib支持的回调功能能够根据每个块大小更新单个文件的上传进度(在发送每个块后调用python函数指针)。此外,从python调用Ubuntu的本机FTP客户端有点棘手,因为它是交互式的

那么…有人对python中支持回调功能且比python的ftplib更快的FTP客户端有什么建议吗?我对已编译的C/C++库持开放态度,这些库已经使用python包装器进行了设置


编辑:我刚刚遇到了pycurl,它可能符合要求。不知怎么的,我以前没见过那个。还是很高兴听到其他建议

我认为pycURL是你最好的选择之一。我在这个网站上发现了另一个与此一致的问题。这个问题和你的不完全一样,但也许它会帮助你


下面是该问题的链接:

一个选项是在后台运行类似于
dd if=myfile of=/dev/null bs=1M的程序来填充RAM缓存,这样ftplib读取就不必等待驱动器。