python生成的csv和转换后的xlsx文件之间的大小差异

问题描述 投票:0回答:1

我写了一个python程序来重命名特定格式的文件名(大约500k文件)。为了跟踪状态,我创建了一个数组status [[]]数组,我附加了文件名,文件路径,状态(无论重命名是否成功)和错误(如果有的话)。完成该过程后,使用csv将该数组导出到pandas

status_file = # path to csv file
status_file_stream = open(status_file, 'w')

df_status = pandas.DataFrame(status)
df_status.to_csv(status_file, index=False)

生成的CSV文件大小是228 MB,但当我用openoffice应用程序打开它并保存为xlsx然后新的xlsx文件大小只有15.6 MB而不丢失任何数据。

为什么CSVXSLX之间存在巨大的差异,或者这是pandas获得大文件大小的问题?

python csv xlsx openoffice-calc
1个回答
2
投票

为了完整起见,我写下我的评论作为答案:

压缩! csv只是一种奇特的方式来说这是一个带逗号的txt,它是一个纯文本文件。另一方面,xlsx是一种二进制格式,生成该格式的程序压缩数据,如果你的数据大致相同,我认为这是因为路径大多是相同的,那么它的高度可压缩性,这就是你看到了

xlsx使用zip(至少根据谷歌)

为了测试这个声明,我生成了一个~110MB的文件,其中包含具有相同路径的随机文件名,并使用zlib来压缩它,输出为~20MB

xlsx可能有额外的优化,但我没有深入研究这种格式

© www.soinside.com 2019 - 2024. All rights reserved.