记录以防万一给忘了。
预解决的问题如下:
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)
网友评论