如何将zip文件从字节数组写入磁盘

2024-09-30 10:41:20 发布

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

我正在从S3下载一个zip文件,如下所示:

buff := &aws.WriteAtBuffer{}
downloader := s3manager.NewDownloader(session.New(config))
_, err := downloader.Download(buff, &input)
if err != nil {
    log.Println(err)
    return err
}

data := buff.Bytes()

我将'data'发送到一个用Python3编写的客户机,需要将这个字节数组转换回zip文件并放入指定的目录中。我试过了:

^{pr2}$

但我得到一个错误:

OSError: [Errno 36] File name too long"

我只想“重建”zip文件并将其保存到一个目录中。在


Tags: 文件目录awsconfignewdatas3session
2条回答

我知道怎么做。在go中,您需要base64对其进行编码(作为一个字符串)。在

buff := &aws.WriteAtBuffer{}
downloader := s3manager.NewDownloader(session.New(config))
_, err := downloader.Download(buff, &input)
if err != nil {
    log.Println(err)
    return err
}

data := b64.StdEncoding.EncodeToString(buff.Bytes())

然后在python中,它很简单(其中“file_bytes”是base64编码的字符串):

^{pr2}$

bam,你有一个重新组合的zip文件。在

the documentation,ZipFile类的第一个参数是文件名或文件对象,而不是Zip内容。在

如果您想在不创建真正的文件的情况下读取内存中的ZipFile,则需要使用io.BytesIO包装文件字节。在

相关问题 更多 >

    热门问题