创建一个包含2个CSV文件的Zip压缩包。

4

我将两个数据框导出为csv,就像这些可能的:

data1 = {'isin':['isin1','isin2','isin3'],'ticker_QF':['ticker1','ticker3','ticker3']}

df_QF = pd.DataFrame(data1)

data2 = {'isin':['isin1','isin1','isin2','isin3'],'ticker_BBG':['ticker1','ticker3','ticker4','ticker5']}
df_BBG = pd.DataFrame(data2)

如果我想创建一个包含csv文件的zip文件夹,该如何操作? 先感谢您。

将文件写入dir_name文件夹,然后使用shutil.make_archive(output_filename, 'zip', dir_name)创建压缩文件,如果需要的话,再删除dir_name文件夹。 - Zero
请参考这个答案 - Kaveen Perera
@ Kaveen Perera 我已经阅读了它,但我并不真正理解,也许有人之前已经完成了我的任务。我会继续努力看看是否能更好地理解它。谢谢。 - Borja_042
1个回答

5
您可以使用Python的zipfile库来帮助完成此操作,具体步骤如下:
import pandas as pd
import zipfile

data1 = {'isin':['isin1','isin2','isin3'],'ticker_QF':['ticker1','ticker3','ticker3']}
data2 = {'isin':['isin1','isin1','isin2','isin3'],'ticker_BBG':['ticker1','ticker3','ticker4','ticker5']}

with zipfile.ZipFile('my_csvs.zip', 'w') as csv_zip:
    csv_zip.writestr("data1.csv", pd.DataFrame(data1).to_csv())
    csv_zip.writestr("data2.csv", pd.DataFrame(data2).to_csv())

这将导致一个名为my_csvs.zip的zip文件,其中包含两个zip文件。此外,CSV文件直接创建在ZIP文件中,不会创建任何其他文件。

已在Python 3.7.3中进行了测试。


1
那太完美了。@Martin Evans - Borja_042

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接