如何从多文件Zip压缩包中指定读取目标CSV文件?
读取zip压缩包中指定CSV文件的解决方法
当压缩包内包含多个文件时,pd.read_csv无法自动确定读取目标,需要明确指定要读取的文件名,以下两种方法可以解决:
方法1:直接通过路径指定(简洁版)
利用zip://协议格式,在URL后用::拼接压缩包内的目标文件名,直接传递给pd.read_csv:
import pandas as pd url = "https://s-media.nyc.gov/agencies/dcp/assets/files/zip/data-tools/bytes/nychdb_22q2_csv.zip" housing_production_since2010_df = pd.read_csv(f"zip://{url}::HousingDB_post2010.csv")
方法2:手动操作压缩包(灵活版)
借助zipfile和requests模块先获取压缩包内容,再读取指定文件,适合需要额外操作压缩包的场景:
import pandas as pd from zipfile import ZipFile import io import requests response = requests.get(url) with ZipFile(io.BytesIO(response.content)) as zf: # 可选:查看压缩包内所有文件 # print(zf.namelist()) with zf.open("HousingDB_post2010.csv") as f: housing_production_since2010_df = pd.read_csv(f)
内容的提问来源于stack exchange,提问作者Eden Mulate
相关产品推荐
相关产品推荐

