我编写了一个python
程序,用于以特定格式重命名文件名(大约50万个文件)。为了跟踪状态,我创建了一个数组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
以获得较大文件大小的问题?
答案 0 :(得分:2)
为了完整性起见,请写下我的评论作为答案:
压缩! csv只是一种奇特的方式,可以说这是带有逗号的txt,它是纯文本文件。 另一方面,xlsx是二进制格式,并且生成该格式的程序会压缩数据(如果您的数据基本相同),我认为这是因为路径基本相同,因此其高度可压缩,这就是您正在看到
xlsx使用zip(至少根据google而言)
为证明这一点,我生成了一个〜110MB的文件,其中包含具有相同路径的随机文件名,并使用zlib
对其进行压缩,输出为〜20MB
xlsx可能还有其他优化,但我没有深入研究格式
答案 1 :(得分:1)
我也遇到了这个问题,不知道为什么大小不同,
问题可能是因为: