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

python生成的csv文件和转换的xlsx文件之间的大小差异,python,csv,xlsx,openoffice-calc,Python,Csv,Xlsx,Openoffice Calc,我编写了一个python程序,以特定格式重命名文件名(大约500k个文件)。为了跟踪状态,我创建了一个数组status[[]],其中添加了文件名、文件路径、状态(重命名是否成功)和错误(如果有)。完成该过程后,使用pandas将该数组导出为csv status_file = # path to csv file status_file_stream = open(status_file, 'w') df_status = pandas.DataFrame(status) df_status.t

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

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
文件大小为
228mb
,但当我用
openoffice
应用程序打开它并另存为
xlsx
时,新的
xlsx
文件大小只有
15.6mb
,没有丢失任何数据


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

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

压缩!csv只是一种花哨的说法,它是一个带有逗号的txt文件,是一个纯文本文件。 另一方面,xlsx是一种二进制格式,生成这种格式的程序会压缩数据,如果您的数据基本相同,我假设这是因为路径基本相同,那么它是高度可压缩的,这就是您看到的

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

为了验证这一说法,我生成了一个约110MB的文件,其中包含具有相同路径的随机文件名,并使用
zlib
对其进行压缩,输出为约20MB


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

为了完整性,我将写下我的评论作为回答:

压缩!csv只是一种花哨的说法,它是一个带有逗号的txt文件,是一个纯文本文件。 另一方面,xlsx是一种二进制格式,生成这种格式的程序会压缩数据,如果您的数据基本相同,我假设这是因为路径基本相同,那么它是高度可压缩的,这就是您看到的

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

为了验证这一说法,我生成了一个约110MB的文件,其中包含具有相同路径的随机文件名,并使用
zlib
对其进行压缩,输出为约20MB


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

我也遇到了这个问题,不知道为什么尺寸会有差异

问题可能是因为:

  • xlsx压缩文件,使其小于csv
  • 如果列只有整数,则xlsx将其视为Int64,csv将其视为float64

  • 我也面临这个问题,不知道为什么尺寸不同

    问题可能是因为:

  • xlsx压缩文件,使其小于csv
  • 如果列只有整数,则xlsx将其视为Int64,csv将其视为float64

  • 压缩
    csv
    是一种奇特的方式,可以说这是一个带有逗号的
    txt
    ,它是一个纯文本文件<另一方面,code>xlsx是一种二进制格式,生成该格式的程序会压缩数据,如果您的数据基本相同,我假设这是因为路径基本相同,那么它是highley可压缩的,这就是您的情况seeing@NullmanOP表示CSV为228mb,xlsx为15MB,所以你所说的没有意义大多数OPs数据都是相同的(路径),这将是非常重要的compressible@Adelin我刚测试过。我制作了一个约110兆的文件,其中包含相同的路径和不同的文件名,然后用zlib压缩它,它下降到约20兆,这是没有任何有趣的优化,xlsx可以处理哦,对,看起来像是mecompression的答案
    csv
    是一种奇特的方式,可以说这是一个带有逗号的
    txt
    ,它是一个纯文本文件<另一方面,code>xlsx是一种二进制格式,生成该格式的程序会压缩数据,如果您的数据基本相同,我假设这是因为路径基本相同,那么它是highley可压缩的,这就是您的情况seeing@NullmanOP表示CSV为228mb,xlsx为15MB,所以你所说的没有意义大多数OPs数据都是相同的(路径),这将是非常重要的compressible@Adelin我刚测试过。我制作了一个约110兆的文件,其中包含相同的路径和不同的文件名,然后我用zlib压缩它,它下降到约20兆,这是没有任何有趣的优化,xlsx可以处理哦,对,看起来像我的答案“xlsx使用zip(至少根据谷歌)”-请尝试以下① 将
    file.xlsx
    复制到
    file.zip
    ② 双击
    file.zip
    这很有趣,我想它会有内部压缩部分“xlsx使用zip(至少根据谷歌的说法)”-请尝试以下内容① 将
    file.xlsx
    复制到
    file.zip
    ② 双击
    file.zip
    这真是太棒了,我原以为它会有内部压缩部分