微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何读取多个zip文件中的所有csv文件?

如何解决如何读取多个zip文件中的所有csv文件?

我有一个包含许多zip文件文件夹,并且在这些zip文件中有多个csv文件。 有什么办法可以在python的一个数据帧中获取所有.csv文件吗? 还是可以通过任何方式传递zip文件列表?

我当前正在尝试的代码是:

import glob
import zipfile
import pandas as pd

for zip_file in glob.glob(r"C:\Users\harsh\Desktop\Temp\data_00-01.zip"):
    # This is just one file. There are multiple zip files in the folder
    zf = zipfile.ZipFile(zip_file)
    dfs = [pd.read_csv(zf.open(f),header=None,sep=";",encoding='latin1') for f in zf.namelist()]
    df = pd.concat(dfs,ignore_index=True)
    print(df)

代码适用于一个zip文件,但是我的文件夹中大约有50个zip文件,我想在一个数据帧中读取并连接这些zip文件中的所有csv文件

谢谢

解决方法

以下代码应满足您的要求(只需根据需要编辑dir_name):

import glob
import zipfile
import pandas as pd

dfs = []
for filename in os.listdir(dir_name):
    if filename.endswith('.zip'):
        zip_file = os.path.join(dir_name,filename)
        zf = zipfile.ZipFile(zip_file)
        dfs += [pd.read_csv(zf.open(f),header=None,sep=";",encoding='latin1') for f in zf.namelist()]
df = pd.concat(dfs,ignore_index=True)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。