Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 11, 2015 18:03:14

omon3
Зарегистрирован: 2015-07-16
Сообщения: 37
Репутация: +  0  -
Профиль   Отправить e-mail  

python 3, Excel 2007 xlsx, TXT

В общем задача заключается в том чтобы из текстовых файлов выгрузить информацию в Excel 2007 в определенные ячейки, информацию в текстовых файлах нужно предварительно обработать (тоесть найти нужную информацию).
Но так как текстовых файлов много, то нужно чтобы программа загружала один за другим из определенной директории. Фактические для этого я планирую сделать чисто отдельно папку и при запуске программы, все файлы должны обработаться и записаться в Excel.

Какие посоветуете для этой задачи библиотеки подключить, в Excel тоже нужно будет искать нужную строчку по ключевому слову.

Отредактировано omon3 (Авг. 12, 2015 00:00:12)

Офлайн

#2 Авг. 12, 2015 00:04:21

4kpt_III
Зарегистрирован: 2014-12-22
Сообщения: 999
Репутация: +  39  -
Профиль   Отправить e-mail  

python 3, Excel 2007 xlsx, TXT

Не понятно. Вы хотите сделать в качестве хранилища excel-файл. Обработать массово txt файлы и записать данные в этот файл, а потом по нему искать какие-то данные. Я верно все понял?

Офлайн

#3 Авг. 12, 2015 00:46:43

omon3
Зарегистрирован: 2015-07-16
Сообщения: 37
Репутация: +  0  -
Профиль   Отправить e-mail  

python 3, Excel 2007 xlsx, TXT

4kpt_III
Не понятно. Вы хотите сделать в качестве хранилища excel-файл. Обработать массово txt файлы и записать данные в этот файл, а потом по нему искать какие-то данные. Я верно все понял?
не совсем.
Есть excel-файл он структурирован и он уже есть хранилище(список квартир). Но требуется периодически перезаписывать определенные ячейки(оплата за квартиру) данными из txt файлов. Каждый txt относится к определенной строке екселя по ключевому слову (номеру квартиры)
Текстовые файлы приходят рандомно. Мы анализируем txt и находим число (оплату за квартиру) и к какой квартире относится. Дальше ищем строку в excel с номером квартиры (квартиры записаны не в каждой клетке, и не через определенное количество клеток и поэтому неизвестно заранее под каким номером строки будет находиться нужная). Найдя нужную строку, перезаписываем рядом стоящую клетку.

Как то так

Офлайн

#4 Авг. 12, 2015 00:49:54

4kpt_III
Зарегистрирован: 2014-12-22
Сообщения: 999
Репутация: +  39  -
Профиль   Отправить e-mail  

python 3, Excel 2007 xlsx, TXT

А не проще-ли это запихнуть все в БД? Распарсить .xlsx файл и запихнуть его в БД, я имею ввиду. Ну и приходящие запросы также пропихивать в БД.

Офлайн

#5 Авг. 12, 2015 01:31:04

omon3
Зарегистрирован: 2015-07-16
Сообщения: 37
Репутация: +  0  -
Профиль   Отправить e-mail  

python 3, Excel 2007 xlsx, TXT

4kpt_III
А не проще-ли это запихнуть все в БД? Распарсить .xlsx файл и запихнуть его в БД, я имею ввиду. Ну и приходящие запросы также пропихивать в БД.
Чтобы не искать в екселе ячейки? Мне показалось проще сразу искать и записывать в ексель, чем в БД, а потом в ексель, если не так - поправьте.

Офлайн

#6 Авг. 12, 2015 01:39:30

4kpt_III
Зарегистрирован: 2014-12-22
Сообщения: 999
Репутация: +  39  -
Профиль   Отправить e-mail  

python 3, Excel 2007 xlsx, TXT

В excel вообще не писать, а писать сразу в базу. Если отчеты нужны, то из базы вынимать нужные данные (можно и все, если уж очень нужно, хотя не понятно зачем) и формировать отчет. В чем он будет, уже Вам решать. Можно, чтобы и в excel, можно, чтобы в odt или csv или вообще в yaml. Тут уже Ваша безграничная фантазия…

Офлайн

#7 Авг. 12, 2015 01:50:49

omon3
Зарегистрирован: 2015-07-16
Сообщения: 37
Репутация: +  0  -
Профиль   Отправить e-mail  

python 3, Excel 2007 xlsx, TXT

4kpt_III
В excel вообще не писать, а писать сразу в базу.
Нужно обязательно в excel писать, это не для отчета, так как все записанные данные потом обрабатываются в самом excel.

Офлайн

#8 Авг. 12, 2015 02:42:03

4kpt_III
Зарегистрирован: 2014-12-22
Сообщения: 999
Репутация: +  39  -
Профиль   Отправить e-mail  

python 3, Excel 2007 xlsx, TXT

А зачем их обрабатывать в самом excel? Или Вы считаете, что табличный менеджер круче языка программирования с огромным количеством библиотек?

P.S. Ладно. Нравятся извращения - бог в помощь. Фактически файл xlsx это большой xml файл. Соответственно, если нужно его анализировать и в него что-то писать / читать рекомендуется использовать любой библиотекой для работы с xml - lxml, например. Если нужно просто собрать xlsx без дополнительного анализа внутренностей, т.е. создать новый документ, то можно использовать XlsxWriter или xlwings (это не пробовал). Если структура данных в текстовом файле простая - просто вычитывать поблочно и парсить регеспами. Если сложная - конечный автомат.

Отредактировано 4kpt_III (Авг. 12, 2015 02:42:25)

Офлайн

#9 Авг. 12, 2015 10:18:23

omon3
Зарегистрирован: 2015-07-16
Сообщения: 37
Репутация: +  0  -
Профиль   Отправить e-mail  

python 3, Excel 2007 xlsx, TXT

4kpt_III
А зачем их обрабатывать в самом excel? Или Вы считаете, что табличный менеджер круче языка программирования с огромным количеством библиотек?
Сам екселевский документ создавался лет 8 назад. Там около 400 строк, несколько листов и.т.д. И куча связей, а главное выглядит все наглядно. Делать все это на языке программирования это настоящее извращение. Тем более этим пользуется человек, который ничего не понимает в программировании.

Задача усложнилась, или упростилась, оказываться Excel документ не xlsx а просто xls. Но сейчас с ним работают в Excel 2007.

Офлайн

#10 Авг. 12, 2015 12:49:22

4kpt_III
Зарегистрирован: 2014-12-22
Сообщения: 999
Репутация: +  39  -
Профиль   Отправить e-mail  

python 3, Excel 2007 xlsx, TXT

xlrd (чтение) + xlwt (запись)

P.S. Да нет, это как раз работать с большим массивом данных в excsel - это извращение. И пользователь понимать не должен. Понимать должен разработчик. Или Вы считаете, что моя мать понимает в программировании, при том, что она лихо пользуется моими продуктами.

P.S.S. Ну и 400 строк - это не объем данных. А связи можно повторить. Для этого в базах данных и существуют механизмы связывания таблиц. Как я понял, о реляционных база данных Вы пока слышали не много

Отредактировано 4kpt_III (Авг. 12, 2015 13:08:35)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version