gpt4 book ai didi

python - 如何将 csv 文件直接压缩成 zip 存档?

转载 作者:太空狗 更新时间:2023-10-29 20:21:31 24 4
gpt4 key购买 nike

我正在使用以下代码动态生成许多 csv 文件:

import csv
fieldnames = ['foo1', 'foo2', 'foo3', 'foo4']
with open(csvfilepath, 'wb') as csvfile:
csvwrite = csv.DictWriter(csvfile, delimiter=',', fieldnames=fieldnames)
csvwrite.writeheader()
for row in data:
csvwrite.writerow(row)

为了节省空间,我想压缩它们。
使用 gzip 模块非常简单:

with gzip.open("foo.gz", "w") as csvfile :
csvwrite = csv.DictWriter(csvfile, delimiter=',', fieldnames=fieldnames)
csvwrite.writeheader()
for row in data:
csvwrite.writerow(row)

但我想要“zip”格式的文件。

我尝试了 zipfile 模块,但我无法直接将文件写入 zip 存档。

相反,我必须将 csv 文件写入磁盘,使用以下代码将它们压缩为 zip 文件,然后删除 csv 文件。

with ZipFile(zipfilepath, 'w') as zipfile:
zipfile.write(csvfilepath, csvfilename, ZIP_DEFLATED)

如何将csv文件直接写入类似gzip的压缩zip?

最佳答案

使用 cStringIO.StringIO模仿文件的对象:

with ZipFile(your_zip_file, 'w', ZIP_DEFLATED) as zip_file:
string_buffer = StringIO()
writer = csv.writer(string_buffer)

# Write data using the writer object.

zip_file.writestr(filename + '.csv', string_buffer.getvalue())

关于python - 如何将 csv 文件直接压缩成 zip 存档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25971205/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com