美文网首页
读取多个zip文件中所有csv文件

读取多个zip文件中所有csv文件

作者: 菌子甚毒 | 来源:发表于2022-02-05 15:09 被阅读0次

记录以防万一给忘了。

预解决的问题如下:
folder下有多个zip,每个zip中含有多个类型的文件。想读出所有zip中的的csv文件。

import numpy as np
import zipfile
import os
import pandas as pd

语句拆解:

# 定义地址
addr = '/.../folder'

# 得到地址下的所有zip文件的文件名
zipnames = [each for each in os.listdir(addr) if each.split('.')[-1]=='zip']

# 打开第0个zip文件
z = zipfile.ZipFile(addr+zipnames[0])

# 得到zip文件下所有的csv文件名
csvlist = [each for each in z.namelist() if each.endswith('csv')]

# 读取csv文件
pd.read_csv(z.open(csvlist[1]),header=None)

打包程序以供日后复制:

# 读取地址下所有的csv文件
addr = '/.../folder'
zipnames = [each for each in os.listdir(addr) if each.split('.')[-1]=='zip']

for each_zip in zipnames:
    with zipfile.ZipFile(addr+each_zip) as z:
        csvlist = [each for each in z.namelist() if each.split('.')[-1]=='csv']
        for each_csv in csvlist:
            f = pd.read_csv(z.open(each_csv),header=None)

Note:
zipfile.ZipFile('path_of_zipfile').open('name_of_file_in_zip')

  • 先打开zip(zipfile.ZipFile)
  • 再打开zip中的文件(z.open)
  • 才能操作文件(pd.read_csv)

https://www.5axxw.com/questions/content/87qy44

相关文章

网友评论

      本文标题:读取多个zip文件中所有csv文件

      本文链接:https://www.haomeiwen.com/subject/nvaekrtx.html