Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Python: Базы данных > python+dbf


Автор: cvetik 13.10.2008, 09:22
Доброе утро всем!!!!
У меня вот какая идея....Мне должны присылать письма с прикрепленным dbf-файлом.... Единставенное что мне надо сделать - это выцепить из него все необходимые для меня данные, а потом я уже все обработаю... проблема возникла как раз на первом этапе.... Сначала я долго выьирала с помощью чего это реализовать...Наткнулась на dbfreader b writer... решила попробоавть его...
Но тут вышла маленькая неприятность
Код

Traceback (most recent call last):
  File "/usr/local/paysystem/pylibs/dbf.py", line 128, in ?
    db = list(dbfreader(f))
  File "/usr/local/paysystem/pylibs/dbf.py", line 22, in dbfreader
    name, typ, size, deci = struct.unpack('<11sc4xBB14x', f.read(32))
struct.error: unpack str size does not match format


Вопрос в том.... как вообще от этого избавиться, ибо я не мргу понять предназначения этой строки... или же в моем случае уместно использовать что-то другое?

Автор: pythonwin 13.10.2008, 09:26
Цитата(cvetik @  13.10.2008,  12:22 Найти цитируемый пост)

У меня вот какая идея....Мне должны присылать письма с прикрепленным dbf-файлом.... 

а зачем? цель можешь рассказать? может есть другое решение.
насчет вопроса - посмотри http://pypi.python.org/pypi/YDbf/0.0.1dev-20080514
взято из http://pyobject.ru/projects/

Автор: cvetik 13.10.2008, 09:30
Это надо для взаимодействия одной организации и моих приложений....Проблема вся в том, что это предложение с этих стороны.... Я понимаю, что это не самое удобное, что вообще можно было использовать...Но другие варианты пока не могут быть использованны, потому как это ( по их словам) единтвенное решение  smile 

Собственно, прибегнув к совету и установив ydbf. получилось новое недоразумение....
Код

Traceback (most recent call last):
  File "dbf_read_test.py", line 11, in ?
    reader = ydbf.YDbfReader(fh)
  File "build/bdist.freebsd-6.2-RELEASE-amd64/egg/ydbf/reader.py", line 319, in __init__
  File "build/bdist.freebsd-6.2-RELEASE-amd64/egg/ydbf/reader.py", line 178, in __init__
  File "build/bdist.freebsd-6.2-RELEASE-amd64/egg/ydbf/reader.py", line 57, in __init__
  File "build/bdist.freebsd-6.2-RELEASE-amd64/egg/ydbf/reader.py", line 72, in readHeader
ValueError: month must be in 1..12



Автор: pythonwin 13.10.2008, 10:02
попробуй ещё спросить на http://python.su/forum/viewforum.php?id=28

Добавлено через 25 секунд
Цитата(cvetik @  13.10.2008,  12:30 Найти цитируемый пост)
Это надо для взаимодействия одной организации и моих приложений....

а *.cvs не лучше?

Автор: cvetik 13.10.2008, 10:08
 Я бы им руки с ногами расцеловала за csv... Но они говорят, что там тоже какие-то проблемы.... нету смайлика со слезами.... в общем рыдаю я от них и от их криволапости....

Автор: pythonwin 13.10.2008, 12:07
Цитата(cvetik @  13.10.2008,  12:30 Найти цитируемый пост)
Собственно, прибегнув к совету и установив ydbf. получилось новое недоразумение....

тогда лучше спроси у автора библиотеки  - j2a (спрашивать лучше ли на python.su/forum либо в jabber)

Автор: aspolyakov 7.2.2009, 10:37
Я знаю в чем грабли с  Ydbf, поробуйте параметр strict в конструкторе!! Он отвечает за дополниткльные проверки.

Автор: J2A 7.2.2009, 15:45
cvetik, пришли файл (если не секретный) почтой на [email protected]. Варианты таковы: или файл покореженный (скорее всего), или в либе ошибка (тоже вероятно). Если секретный -- стукнись в джаббер, [email protected]. Если джаббера у тебя нет -- воспользуйся http://habahaba.jrudevels.org/[email protected]

P.S. Глянул дату оригинального поста... похоже вопрос уже не актуален, в любом случае, если что -- связывайся.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)