Как читать CSV-файлы из нескольких папок ZIP, расположенных в одном каталоге, используя python? - PullRequest
0 голосов
/ 30 января 2020
  • У меня есть несколько папок zip с именами zip_folder_1, zip_folder_2, ..., zip_folder_n.
  • Все эти zip-папки находятся в одном каталоге. Каждая из этих zip-папок содержит CSV-файл с именем «selected_file.csv».
  • Мне нужно прочитать каждый из "selected_file.csv", расположенный в каждой из папок zip, и объединить их в один файл

Может кто-нибудь подсказать мне требуемый python код для решения этой проблемы? Я ценю вашу помощь!

1 Ответ

0 голосов
/ 30 января 2020

Это должно привести к 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')
...