繁体   English   中英

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

[英]Difference in output file size when writing to .txt and .xlsx formats

我尝试将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文件。 您看到的大小差异是zip压缩过程的结果。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM