2017-02-10 3 views
0

Постановка задачи:Объединить месячные ежедневные файлы в один?

Учитывая ежедневные файлы CSV на каждый день каждого месяца за последние 12 месяцев на системе Linux, что это лучший способ объединить ежедневные файлы в ежемесячных файлов, в результате ежемесячных файлов с помощью питона ?

Примеры Имя файла

alf.history.alerts.2016-02-24

alf.history.alerts.2016-04-24

Спасибо за вход в заранее все! Надеюсь узнать что-то в этом вопросе.

+0

Данные в файлах строго ежедневно, то есть полночь до полуночи? Если это так, вы можете просто конкатенировать файлы с помощью bash. – 9000

+0

Да, я знаю, как это сделать в BASH. По существу найдите 01 * ... 12 * и создайте из него ежемесячные файлы. Хотелось понять, как сделать то же самое в Python :) – telecomToperl

+1

Вы что-то кодировали до сих пор (даже в BASH)? –

ответ

1

Вы не писали ни одного кода, поэтому я тоже этого не сделаю.

  • Вы можете получить список файлов с glob
  • ваши файлы, когда отсортированных по имени файла, также сортируются в день (это хорошо)
  • Вы можете использовать groupby на отсортированного списка группы им месяц. В качестве критериев для groupby вы можете использовать filename[:-3]. Пример: "alf.history.alerts.2016-02-24"[:-3] >>> "alf.history.alerts.2016-02"
  • У вас тогда есть 12 групп файлов csv. Для каждой группы создайте новый файл csv, перейдите по отсортированным csvs и напишите их содержимое в ежемесячный файл csv.
+1

Отлично! Спасибо Эрик. Я рад, что вы не просто дали ответ. Я попробую и вернусь, если у меня появятся вопросы! – telecomToperl