我正在使用此代码将 myfile.txt 从我的 Windows 机器上传到 ftp 服务器。上传后,脚本会删除我本地机器上的文件(我没有在 ftp 上删除它)。
try:
ftp = FTP(ftp.host.com)
ftp.login(your_username, your_password)
file = open(myfile.txt, "rb")
ftp.storbinary('STOR myfile.txt', file)
print 'STORing File now...'
ftp.quit()
file.close()
subprocess.Popen('del myfile.txt', shell=True)
print 'File deleted'
except all_errors:
print 'An error occured'
此代码运行,但它不可靠!在每上传约 10 次时,我的脚本在存储文件时都会挂起。
print 'STORing File now...' # So I just get 'STORING File now...'
文件不大,应该在几秒钟内上传,但我经常要等一两个小时,然后才抛出异常:
print 'An error occured'
如果“更早”抛出异常,那就太好了,所以我可以重新开始上传(例如在一个while循环中)。因为我需要尽快上传这个文件,所以我需要让文件上传更快(我不想等那么久才抛出异常)
第二个问题:有时会发生这种情况:文件成功上传后,脚本无法删除我本地计算机上的文件,因为“其他进程已经在访问它”<-我认为 ftplib 没有“释放”文件。我能做些什么来防止这种情况发生?
我正在寻找更好/可靠的简单文件上传解决方案。有人有想法吗?谢谢!