1
我使用ftplib模块将许多bz2文件上传到FTP(每天约1000个文件,每个文件大约5 MB,存储一个numpy数组)。偶尔会有一些上传的文件被破坏。当我尝试使用bz2和numpy读取它时,出现错误“IOError:invalid data stream”。如果我尝试使用WinRAR等软件对其进行解压缩,则会出现“文件名为的校验和错误消息,该文件已损坏。”Python ftplib:上传到FTP的bz2文件有时会损坏
上传数据的代码没有特别之处。基本上,它看起来是这样的:
while True:
try:
fidFile = open(fileName, 'rb')
ftp.storbinary('STOR '+fileName, fidFile)
fidFile.close()
break
except:
continue
对于损坏的文件,如果我上传他们再次使用相同的代码,大部分的时间,我可以得到良好的文件。
使用不同的ftp并不能消除这个问题。
我也注意到,损坏的文件与好文件具有完全相同的字节。我猜所有必要的信息已经上传了,所以我真的不明白为什么文件被损坏了。
谢谢你的建议。我无法立即尝试您的代码,但似乎即使上传的文件已损坏,代码也不会引发异常。上传过程没有任何错误,我需要检查所有上传的文件以找出损坏的文件。 –