如何使用 python 从位于同一目录中的多个 zip 文件夹中读取 csv 文件?

Posted

技术标签:

【中文标题】如何使用 python 从位于同一目录中的多个 zip 文件夹中读取 csv 文件?【英文标题】:How to read csv files from multiple zip folders located in the same directory using python? 【发布时间】:2020-01-29 23:11:03 【问题描述】: 我有多个名为 zip_folder_1、zip_folder_2、...、zip_folder_n 的 zip 文件夹。 所有这些 zip 文件夹都位于同一目录中。这些 zip 文件夹中的每一个都包含一个名为“selected_file.csv”的 csv 文件。 我需要读取位于每个 zip 文件夹中的每个“selected_file.csv”并将它们连接到一个文件中

有人可以提示我解决此问题所需的 python 代码吗?感谢您的帮助!

【问题讨论】:

请先向我们展示您自己的努力。我们可以为您提供有关如何改进代码的提示,但我们无法为您编写代码。 【参考方案1】:

这应该会在您的工作目录中生成concatenated_data.csv,并假定my_data_dir 中的所有文件都是包含数据的zip 文件。

import os, numpy as np, zipfile

def add_data_to_file(new_data,file_name):
    if os.path.isfile(file_name):
        mode = 'ab'
    else:
        mode = 'wb'
    with open(file_name,mode) as f:
            np.savetxt(f,np.array([new_data]),delimiter=',')        

my_data_dir = 'C:/my/zip/data/dir/'
data_files = os.listdir(my_data_dir)
for data_file in data_files:
    full_path = os.path.join(my_data_dir,data_file)
    with zipfile.ZipFile(full_path,'r',zipfile.ZIP_DEFLATED) as zip_file:
        with zip_file.open('selected_file.csv','r') as selected_file:
            data = np.loadtxt(selected_file,delimiter=",")
    add_data_to_file(data,'concatenated_data.csv')

【讨论】:

以上是关于如何使用 python 从位于同一目录中的多个 zip 文件夹中读取 csv 文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Python 2.7 中从同一个列表中打印两个数字

如何使用 dask/fastparquet 从多个目录中读取多个 parquet 文件(具有相同架构)

如何从多个 .csv 文件中的命名列中选择唯一值?

如何在 python 循环中更新 matpplotlib 库图,该图位于 Jupyter 笔记本中的同一位置?

Python导入并运行位于不同目录中的python脚本[重复]

如何在 tkinter GUI 位于同一文件中的情况下运行 python 脚本?您如何处理用户条目?