Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Парсинг логов с insert в таблицу / 6 сообщений из 6, страница 1 из 1
17.06.2015, 14:35
    #38985848
Парсинг логов с insert в таблицу
Делаю парсинг логов в директории. Все файлы, старше 12 часов должны заноситься в специальную таблицу. Парсинг работает, а вот инсертиться не хочет...

Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
import os, time
import datetime
import cx_Oracle

dirs = 'C:/Users/Documents/new'
dir_collection = []
dt = datetime.datetime.now()
delta = datetime.timedelta(hours=12)

for dirpath, dirnames, filenames in os.walk(dirs):
    FileDate = os.path.getctime(dirpath)
    FileDate = datetime.datetime.fromtimestamp(FileDate)
    delta_file = dt - FileDate
    if delta_file > delta :
        dir_collection.append(filenames)

     

con = cx_Oracle.connect('user/password@127.0.0.1/mybase')
cur = con.cursor()
for i in dir_collection:
    example = [i, datetime.datetime.now()]
cur.executemany (
    "insert into table(NAME_FILE, sys_creation_date) values (:1, :2)"
    , example)
con.commit()
cur.close()
con.close()



Если делать запись в файл и чтение потом из него - все работает. Но это лишние заморочки. Понимаю, что проблема именно с example, но ума не хватает доделать :)
...
Рейтинг: 0 / 0
17.06.2015, 14:55
    #38985881
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсинг логов с insert в таблицу
Не проще ли загрузить весь файл одной командой LOAD DATA INFILE/mysqlimport?
Быстрее-то точно.
...
Рейтинг: 0 / 0
17.06.2015, 14:57
    #38985883
Парсинг логов с insert в таблицу
miksoftНе проще ли загрузить весь файл одной командой LOAD DATA INFILE/mysqlimport?
Быстрее-то точно.

Нужны только имена файлов, и даты, когда разница была обнаружена
...
Рейтинг: 0 / 0
17.06.2015, 14:59
    #38985886
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсинг логов с insert в таблицу
ЗлобнаяПеченька,

А где проверка и вывод ошибок после INSERT?

Кстати, извиняюсь за mysqlimport, не заметил, что коннект к Ораклу.
...
Рейтинг: 0 / 0
17.06.2015, 15:05
    #38985894
Парсинг логов с insert в таблицу
miksoftЗлобнаяПеченька,

А где проверка и вывод ошибок после INSERT?

Кстати, извиняюсь за mysqlimport, не заметил, что коннект к Ораклу.
Мне надо добиться, чтобы он вообще инсертить начал. exception потом буду дорисовывать.

Ругается
, example)
InterfaceError: expecting a list of dictionaries or sequences
...
Рейтинг: 0 / 0
17.06.2015, 16:17
    #38985981
Парсинг логов с insert в таблицу
Вопрос закрыт, переделала само получение списка файлов

Код: python
1.
2.
3.
4.
5.
6.
7.
8.
full = os.listdir(dirs)
for filenames in full:
    fullname = os.path.join(dirs, filenames)
    FileDate = os.path.getctime(fullname)
    FileDate = datetime.datetime.fromtimestamp(FileDate)
    delta_file = dt - FileDate
    if delta_file > delta :
        dir_collection.append(filenames)
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Парсинг логов с insert в таблицу / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]