Найти - Пользователи
Полная версия: CSV-файл - определение и изменение кодировки
Начало » Python для новичков » CSV-файл - определение и изменение кодировки
1 2 3 4
coffe4wolf
ZerG
Ну, я подумал если программа выгружает из себя отчёт в формате csv, то и работать надо с ним через модуль csv
ZerG
повторю еще раз - на всякий случай!
Гораздо проще цепляться к базе данных и выгребать то что вам нужно - формировать ето в что угодно и так далее ! Чем настраивать импоры кодировки И так далее и тп
“Не для меняяя…” (с)
Если я начну разбираться, в каком виде оно хранится в БД, как к ней коннектиться, писать функции для выгрузки отчёта за определённый период и по определённым людям (а порой мне приходится выбирать из базы по 500 человек, то есть ещё GUI писать надо, так как вводить всех через консоль будет очень уж муторно), а потом ещё писать выгрузку, да так чтобы оно выгружалось красивой табличкой - пройдёт ещё полгода Думаю всё ж проще протыкать нужных людей мышкой в проге, получить csv-файлик и обкромсать его скриптом. На самом деле мне очень интересно бы изучить коннект с базой, но вряд ли стоит за это хвататься, пока я не освоил достаточно хорошо более базовые вещи языка
ZerG
база на чем?
coffe4wolf
Таки InterBase
Shaman
coffe4wolf
На самом деле мне очень интересно бы изучить коннект с базой
Одна библиотека да две строчки кода.
doza_and
Shaman
Таки InterBase
Есть неплохой модуль Kinterbase см в тулзах fierbird.

Я понялваше описание формата. Предложенный мной код работает неверно.
py.user.next
coffe4wolf
Самая первая строка файла - заголовок:
ФИО;Первый приход;Последний уход;
Если смотреть на это как на csv (dsv), то в конце есть лишнее пустое поле. Но это всё-таки не csv и не dsv. Это просто данные из таблицы экселя. Не надо с ними работать как с csv, потому что в csv строки не зависят друг от друга никогда, так как считается, что у них нет порядка (перестановка любых строк не влияет на данные).

Надо по-другому сделать:
1. Сначала преобразовать всё в список.
[(name1, [(in, out), (in, out)]),
(name2, [(in, out)]),
(name3, []),
(name4, [(in, out), (in, out), (in, out)])]
2. Потом этот список обработать как надо.
3. Потом результат преобразовать в csv-файл.
4. Потом этот csv-файл импортировать в программы.

Можно, конечно, и базу данных сделать типа sqlite-файла, в котором потом выполнять запросы по выборке нужных данных, но я думаю, ты её не сделаешь (её нужно правильно спроектировать ещё).
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB