写入 .txt 和 .xlsx 格式时输出文件大小的差异

我尝试将 800 个 JSON 响应保存到 .txt 文件和 Excel 文件。


对于 txt,我正在使用:


for activity_id in activity_ids:

        activity_details = requests.get(url, params=activity_id).text

        with open('test.txt','a') as f:

            f.write(activity_details + '\n')

对于 JSON:


def df_to_excel(df, filename):

    writer = pandas.ExcelWriter(filename)

    df.to_excel(writer, 'Sheet1')

    writer.save()


for activity_id in activity_ids:

    activity_details = requests.get(url, params=activity_id).json()  

    df = json_normalize(j)

    df_to_excel(df, 'test.xlsx')

为什么输出文件大小存在巨大差异:Excel 文件为 6.5 Mb,txt 文件为 30 Mb?如果有的话,我希望 Excel 文件更大。我可以做些什么来缩小txt输出文件?


翻过高山走不出你
浏览 366回答 2
2回答

慕斯709654

Excel 文档 (.xlsx) 是包含 xml 文件的 zip 文件。您看到的大小差异是 zip 过程压缩的结果。

喵喵时光机

正在以追加模式打开文本文件。如果您没有在代码开头的某处清除它,它会在每次运行代码时不断积累大量多余的文本。此外,您正在为文本文件中的每个活动 id 编写响应,而您似乎正在 excel 中覆盖工作表 1,因此 excel 仅存储最后一个活动 id 信息。编辑:是的,正如@Michael 所说,excel 文件确实存储压缩数据,并且比纯文本文件的大小更小。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python