簡體   English   中英

如何在不寫入磁盤的情況下解壓縮?

[英]How to unzip without writing to disk?

我在只讀系統中有一個 zip 存檔path_to_zip_file 棘手的是我需要解壓縮其內容並打開包含在 zip 存檔中的 CSV 文件testfile.csv 請注意 zip 存檔包含許多不同的文件,但我只想從中獲取 CSV 文件。 我的目標是將此 CSV 文件的內容放入 Pandas 數據框df

我的代碼如下所示。 有沒有辦法更新它,使其可以在只讀系統中執行? 換句話說,如何在不寫入磁盤的情況下在內存中運行它?

import zipfile
import pandas as pd

path_to_zip_file = "data/test.zip"
directory_to_extract_to = "result"
with zipfile.ZipFile(path_to_zip_file, 'r') as zip_ref:
    zip_ref.extractall(directory_to_extract_to)

csv_file_name = "testfile.csv"
df = pd.read_csv("{}/{}".format(directory_to_extract_to,csv_file_name), index_col=False)

簡單的方法是將其解壓縮到 /tmp,這是 RAM 中的一個目錄。 您還可以使用 python 的tempfile庫來創建一個臨時目錄並將其解壓縮到那里(它可能只會在 /tmp 中創建一個目錄)

在已經打開的存檔上使用ZipFile.open ,我們可以這樣做:

import zipfile
import pandas as pd

with zipfile.ZipFile("archive.zip") as archive:
    with archive.open("testing.txt") as csv:
        df = pd.read_csv(csv)

print(df)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM