我写了一个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
而不丢失任何数据。
为什么CSV
和XSLX
之间存在巨大的差异,或者这是pandas
获得大文件大小的问题?
为了完整起见,我写下我的评论作为答案:
压缩! csv只是一种奇特的方式来说这是一个带逗号的txt,它是一个纯文本文件。另一方面,xlsx是一种二进制格式,生成该格式的程序压缩数据,如果你的数据大致相同,我认为这是因为路径大多是相同的,那么它的高度可压缩性,这就是你看到了
xlsx使用zip(至少根据谷歌)
为了测试这个声明,我生成了一个~110MB的文件,其中包含具有相同路径的随机文件名,并使用zlib
来压缩它,输出为~20MB
xlsx可能有额外的优化,但我没有深入研究这种格式