簡體   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