Python的FTPLib太慢了?
我最近在玩Python的FTP库,感觉它的速度比在DOS中用脚本文件慢太多了。我需要下载成千上万的数据文件(我现在大概有超过800万个)。我观察到,在Python中下载的过程似乎要比在DOS命令行中慢五到十倍。
因为我不想让别人帮我修代码,所以我没有提供任何代码。我更想知道我的观察是否正确,或者我是否需要调整一些参数。
7 个回答
4
在FTP连接中定义块大小,并使用storbinary,这样你的连接速度会比FTP Filezilla快1.5到3倍哦 :)
from ftplib import FTP
USER = "Your_user_id"
PASS = "Your_password"
PORT = 21
SERVER = 'ftp.billionuploads.com' #use FTP server name here
ftp = FTP()
ftp.connect(SERVER, PORT)
ftp.login(USER, PASS)
try:
file = open(r'C:\Python27\1.jpg','rb')
ftp.storbinary('STOR ' + '1.jpg', file,102400) #here we store file in 100kb blocksize
ftp.quit()
file.close()
print "File transfered"
except:
print "Error in File transfering"
4
速度问题可能出在你的代码上。FTPlib并没有慢到十倍那么夸张。
3
FTPLib是用Python写的,而你提到的“DOS脚本”其实是一个调用已经编译好的命令的脚本。执行这个命令可能比解释Python代码要快。如果你觉得速度不够快,我建议你可以在Python中使用subprocess模块来调用这个DOS命令。