【问题标题】:How to read csv files from multiple zip folders located in the same directory using python?如何使用 python 从位于同一目录中的多个 zip 文件夹中读取 csv 文件?
【发布时间】: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 代码吗?感谢您的帮助!

【问题讨论】:

  • 请先向我们展示您自己的努力。我们可以为您提供有关如何改进代码的提示,但我们无法为您编写代码。

标签: python csv zipfile


【解决方案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')

【讨论】:

    猜你喜欢
    • 2020-10-05
    • 2021-07-04
    • 1970-01-01
    • 2019-06-25
    • 2021-04-02
    • 2018-01-27
    • 2015-03-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多