Форум сайта python.su
Была поставлена задача:
Человек выгружает раз в неделю статистику о маршруте движения автомобиля в один из файл csv.
Нашел скрипт
http://superuser.com/questions/762449/splitting-a-7-million-row-csv-by-a-specific-column
Работает. Однако он каждую строку преобразует в отдельный файл, а нужно, чтоб все записи, имеющие в себе одинаковую отметку даты 13-10-2014, к примеру, собирались в один файл.
Есть ли возможность добавить в скрипт такой код, чтобы:
- все записи, имеющие в себе одинаковую отметку даты 13-10-2014, к примеру, собирались в один файл, а не создавалась гора файлов с 1 строкой внутри и отметкой 13-10-2014?
- каждый созданный файл конвертировался в формат *.kmx?
Заранее благодарю за любую подсказку или наводку
Ранее я немного работал с Python, но на любительском уровне, а теперь вот пришлось столкнутся с такой проблемой.
p.s. сложность еще заключается в том, что в оригинальном выгружаемом файле в колонке с датой рядом еще время стоит. Не иначе, как вручную, удалять приходится все “:” , иначе не формируется файл.
Офлайн
1)Нужно цикл сравнения дополнительно тогда городить.
2) не совсем ясно что за kmx и где он используется, существуют ли аналоги или конвертеры вообще.
Офлайн
sypper-pit
1)Нужно цикл сравнения дополнительно тогда городить.2) не совсем ясно что за kmx и где он используется, существуют ли аналоги или конвертеры вообще.
Офлайн
В общем, первый скрипт http://superuser.com/questions/762449/splitting-a-7-million-row-csv-by-a-specific-column разбивает на строки.
А вот этот:
#!/usr/bin/env python3
import time, glob
import binascii
import csv
import os.path
import sys
from tkinter.filedialog import askopenfilename, askdirectory
from tkinter.simpledialog import askinteger
read_files = glob.glob(“*.CSV”)
with open(“result.CSV”, “wb”) as outfile:
for f in read_files:
with open(f, “rb”) as infile:
outfile.write(infile.read())
Соединяет до кучи те файлы, которые находят с ним в одной директории.
Реально ли во второй скрипт добавить диалоговое окно, чтобы была возможность выбора файлов, необходимых для соединения? А еще необходимо, чтобы result.CSV создавался именно в той папке, откуда была вызвана группа файлов. Чтоб записи поверх не происходило.
Офлайн
import toolz seq=[[1,2],[2,3],[2,5],[1,"aaa"]] print toolz.itertoolz.groupby(lambda x:x[0], seq) {1: [[1, 2], [1, 'aaa']], 2: [[2, 3], [2, 5]]}
Офлайн
doza_andА можно попросить комментарии добавить к строкам?
Отредактировано Sirius_W (Окт. 25, 2014 16:35:00)
Офлайн