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並不能消除這個問題。
我也注意到,損壞的文件與好文件具有完全相同的字節。我猜所有必要的信息已經上傳了,所以我真的不明白爲什麼文件被損壞了。
謝謝你的建議。我無法立即嘗試您的代碼,但似乎即使上傳的文件已損壞,代碼也不會引發異常。上傳過程沒有任何錯誤,我需要檢查所有上傳的文件以找出損壞的文件。 –