我有一个Python脚本,可以从匿名的ftp站点复制一堆文件。当我尝试复制几千个时,脚本会在所有文件被复制之前超时。但是,如果我多次运行脚本并且每次只复制几百个文件,那就没问题了。这些文件是文本文件,每个文件大约10KB。一旦我登录到ftp站点,这是我的代码:
for row in rows:
stationFilePrefix = "%s" % (row[0])
stationFile = stationFilePrefix + ".dly"
f = open(stationFile,"wb")
ftp.retrbinary("RETR " + stationFile,f.write)
f.close()
有没有人对如何在没有脚本超时的情况下一次获取所有文件有任何建议?谢谢!
答案 0 :(得分:0)
技术上并不是一次性抓取所有文件,但是如果在较小的文件集上多次调用脚本,那么你可以让脚本本身一次只复制几百个文件,抓住一个新的集合每次迭代。
答案 1 :(得分:0)
ftp.retbinary()在你调用它时会阻塞吗? 如果不是,则意味着一次打开太多连接,并且网络无法全部处理它们。