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

Python 写入.txt和.xlsx格式时输出文件大小的差异,python,pandas,Python,Pandas,我已经尝试将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_

我已经尝试将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输出文件吗?

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

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

文本文件以附加模式打开。如果您在代码开头的某个地方没有清除它,那么每次运行代码时,它将不断积累大量多余的文本。此外,您正在文本文件中为每个活动id编写响应,而您似乎正在覆盖excel中的工作表1,因此excel仅存储最后一个活动id信息


编辑:是的,正如@Michael所说,excel文件确实存储压缩数据,并且比纯文本文件小。

文本文件以附加模式打开。如果您在代码开头的某个地方没有清除它,那么每次运行代码时,它将不断积累大量多余的文本。此外,您正在文本文件中为每个活动id编写响应,而您似乎正在覆盖excel中的工作表1,因此excel仅存储最后一个活动id信息

编辑:是的,正如@Michael所说,excel文件确实存储压缩数据,并且比纯文本文件小