Кратко:
Есть скрипт, который дробит большой массив данных на группы. Каждая такая группа данных работает в отдельном процессе. Нужно сделать так, чтобы каждая такая группа данных записывалась в целевой для нее файл.
Мне нужно сделать так, чтобы код находил файл куда нужно записать данные
Упрощенный вариант моего кода (для наглядности)
# Разбили массив данных на три группы. Каждому процессу - одну группу из списка
data_group = [["123", "123", "123"], ["123", "123", "123"], ["123", "123", "123"]]
# Функция записи данных в конкретный файл
def write_data(data, file_name):
with open(file_name, mode='w', encoding="utf-8") as file:
names = ["Колонка1", "Колонка2"]
file = csv.DictWriter(file, delimiter = ",", lineterminator = "\r",
fieldnames = names)
# Запись данных в колонку
for item in data:
file.writerow(item)
# Функция анализа данных
def func(data_group):
data = []
# Какой-то анализ группы данных с последующей записью в файл
for item in data_group:
first = item[0]
second = item[1]
third = item[2]
data.append(first, second, third)
write_data(data, file_name)
# Запуск в 3 процессах
with Pool(3) as pool:
pool.starmap(func, product(data_group, file_name))
Нужно как то передать в каждый отдельный процесс отдельный файл. Помогите пожалуйста, заранее, огромное спасибо!