我在只读系统中有一个zip存档path_to_zip_file
。棘手的是,我需要解压缩它的内容,并打开一个CSV文件testfile.csv
,它包含在zip存档中。请注意,zip存档包含许多不同的文件,但我只想从中取出一个CSV文件。我的目标是把这个CSV文件的内容放到pandas dataframedf
中。
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)
在已经打开的存档文件上使用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)
简单的方法是将其解压缩到/tmp,这是RAM中的一个目录。您也可以使用python的tempfile库创建一个临时目录并将其解压缩(它可能只是在/tmp中创建一个目录)