pythonftplib:bz2上传到ftp的文件有时会损坏

2024-09-30 02:22:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用ftplib模块将许多bz2文件上传到ftp(每天大约1000个文件,每个文件大约5MB,存储一个numpy数组)。偶尔,一些上传的文件会被破坏。当我尝试使用bz2和numpy读取它时,得到错误“IOError:invalid data stream”。如果我试图用WinRAR之类的软件解压它,就会得到消息“Checksum error infilename。文件已损坏。“

上传数据的代码没有什么特别的。基本上是这样的:

while True:
    try:
        fidFile = open(fileName, 'rb')
        ftp.storbinary('STOR '+fileName, fidFile)
        fidFile.close()
        break
    except:
        continue

对于损坏的文件,如果我使用相同的代码再次上传它们,大多数情况下我可以得到好的文件。你知道吗

使用不同的ftp并不能消除这个问题。你知道吗

我还注意到,损坏的文件与良好的文件具有完全相同的字节。我想所有必要的信息都上传了,所以我真的不明白为什么文件被破坏了。你知道吗


Tags: 模块文件代码numpydatastream错误ftp
1条回答
网友
1楼 · 发布于 2024-09-30 02:22:13

此问题的解决方法可以是:

def upload(fileName):
    try:
        fidFile = open(fileName, 'rb')
        ftp.storbinary('STOR '+fileName, fidFile)
        fidFile.close()
    except Exception as e:
        print(e)
        upload(fileName)
        # Can be improved by restricting retry limit.

它一直试图上传文件,并将关闭它被上传。你知道吗

相关问题 更多 >

    热门问题