作者:久福网_382 | 来源:互联网 | 2023-09-25 18:11
我希望能够从zip文件夹中将.csv文件读入df。具体如下:
当前,我编写了以下内容,使我可以使用内置的pandas方法下载文件夹,提取文件并加载csv,如下所示:
source = "https://nces.ed.gov/ccd/Data/zip/ccd_lea_059_1718_l_1a_083118.zip"
tresp = requests.get(source)
tzip = zipfile.ZipFile(io.BytesIO(tresp.content))
tzip.extractall(os.path.abspath(os.path.dirname(__file__)))
df = pd.read_csv(os.path.join(os.path.abspath(os.path.dirname(__file__)),'ccd_lea_059_1718_l_1a_083118.csv'))
但是,我想实现类似于以下内容的东西:
source = "https://nces.ed.gov/ccd/Data/zip/ccd_lea_059_1718_l_1a_083118.zip"
df = pd.read_csv(source)
虽然read_csv可以加载位于zip中的压缩csv,但是它要求文件夹中只有一个文件。这样,上面的代码按预期产生以下错误:
ValueError: ('Multiple files found in compressed zip file %s',"['ccd_lea_059_1718_l_1a_083118.csv','ccd_lea_059_1718_l_1a_083118.sas7bdat']")
我想知道是否有一种简洁有效的方法来指定我要从源链接加载csv,而不必以编程方式下载,提取和读取csv作为存储在物理路径中的文件。任何帮助将不胜感激!