472,106 Members | 1,298 Online
Bytes | Software Development & Data Engineering Community
Post +

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 472,106 software developers and data experts.

Dbase / foxpro files

Is there a module for reading/modifing db files from Python?
Thanks for help
B.
Jun 27 '08 #1
10 4626
Johny wrote:
Is there a module for reading/modifing db files from Python?
There is a recipe by Raymond Hettinger:

http://aspn.activestate.com/ASPN/Coo.../Recipe/362715

Peter
Jun 27 '08 #2
Johny wrote:
Is there a module for reading/modifing db files from Python?
Thanks for help
B.
I have a module -- which I'm going to get around to releasing one of
these days :-) -- which allows to read dBase III, dBase IV and Foxpro
files (sequentially only, not randomly) and to write dBaseIII files
sequentially. Index files if any are ignored.

Field types supported for reading:
C character
D date
F float
I integer (32 bits)
L logical
M memo (stored in a .DBT (dBase) or .FPT (FoxPro) file)
N number
T time

Writing supports only dBaseIII with C, D, L and N fields, but could be
extended easily enough (I've never had the need). No index files are
written.

E-mail me if you are interested.

Cheers,
John
Jun 27 '08 #3
On May 15, 5:21*pm, John Machin <sjmac...@lexicon.netwrote:
Johny wrote:
Is there a module for reading/modifing db files from Python?
Thanks for help
B.

I have a module -- which I'm going to get around to releasing one of
these days :-) -- which allows to read dBase III, dBase IV and Foxpro
files (sequentially only, not randomly) and to write dBaseIII files
sequentially. Index files if any are ignored.

Field types supported for reading:
C character
D date
F float
I integer (32 bits)
L logical
M memo (stored in a .DBT (dBase) or .FPT (FoxPro) file)
N number
T time

Writing supports only dBaseIII with C, D, L and N fields, but could be
extended easily enough (I've never had the need). No index files are
written.

E-mail me if you are interested.

Cheers,
John
Hello John,
Yes, I am interested. Is it possible to download the module?
Thanks
Lad
Jun 27 '08 #4
Johny ha scritto:
Is there a module for reading/modifing db files from Python?
Thanks for help
B.
If your target is Windows, you can try mediator components

http://www.otc.pl/download/

which are COM objects based on xHarbour and which give you
full access to DBF and index.

You need PythonWin too.

I did some tests, if you like i can send you something,
call me in my private mail.

Claudio
Jun 27 '08 #5
Johny wrote:
Is there a module for reading/modifing db files from Python?
Thanks for help
B.
Just create a ODBC DataSource (Control Panel/Administrative Tools/
DataSources) and use ODBC to read/write.

-Larry
Jun 27 '08 #6
ma*************@gmail.com wrote:
look at

http://pypi.python.org/pypi?%3Aactio...&submit=search

i use dbfpy
That's another option. The caveat is that dbfpy specifically states that it
only works on "simple" files. I'm pretty sure ODBC is universal.

The nice thing about using ODBC is that:

1) Nothing to install, every Windows machine has ODBC
2) If you upgrade to some other ODBC compliant database you have little or no
changes that are required to your application.

Just my 2 cents.

-Larry
Jun 27 '08 #8
Johny wrote:
>Is there a module for reading/modifing db files from Python?
Thanks for help
B.
--
http://mail.python.org/mailman/listinfo/python-list

I'm switching my company's software base over from FoxPro 6 to Python.
As part of that effort I have written (and am still enhancing :) a
dbf.py module which reads/writes both dBase III and FoxPro tables.

Index files are not supported, but the table can be sorted by any
combination of fields after being opened.

dBase III table/memo support is complete, but FoxPro field types
Currency, Double, General, and Picture are not supported and those
fields are stripped out when opened, and will not be in any saved
version of that table. At this point, the dbf file itself is read into
memory, all updates are held in memory, and the table is only written to
disk when the Save method is called.

Record navigation can be sequential or random, and Top, Bottom, Next,
and Previous are supported.

Searching is supported, using (or not) deleted records is supported,
adding and deleting fields is supported, saving as a csv file, and more.

Let me know if you'd like the module. Hope this helps.

Sample session follows...
>>import dbf
table = dbf.DbfTable('newtable','name C(10), age N(3.0), wisdom M')
print table
Table: newtable.dbf
Type: dBase III Plus
Last updated: 2008-05-16
Record count: 0
Field count: 3
Record length: 24

--Fields--
name C(10)
age N(3.0)
wisdom M(10)
>>table.Append()
table.name = 'Ethan'
table.age = 37
table.wisdom = 'Python rules!'
table.Scatter()
{'age': 37, 'name': 'Ethan', 'wisdom': 'Python rules!'}
>>table.GetField('name')
'Ethan'
>>table[0]
Ethan 37 1
>>record = table[0]
record.name
'Ethan'
>>record.wisdom
'Python rules!'
>>record.age = 40
record
Ethan 40 1
>>table[0]
Ethan 40 1
>>table.Append({'name':'Lori', 'age':45, 'wisdom':'happy gardens make
a happy wife'})
>>table.Scatter()
{'age': 45, 'name': 'Lori', 'wisdom': 'happy gardens make a happy wife'}
>>for record in table:
.... print record.name, record.wisdom
....
Ethan Python rules!
Lori happy gardens make a happy wife
>>>

Jun 27 '08 #9
Thanks for your reply.Is it possible to delete a record by using the
module?
Thanks
L>
Jun 27 '08 #10
Johny wrote:
>Thanks for your reply.Is it possible to delete a record by using the
module?
Thanks
L>
--
http://mail.python.org/mailman/listinfo/python-list

It is possible with mine. To clarify an earlier post, my module is for
dBase III and VFP 6.0 files only (those were the only two I needed :).

Hope this helps.
--
Ethan

Jun 27 '08 #11

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

2 posts views Thread by Kshitij | last post: by
2 posts views Thread by NOSPAMrclark | last post: by
1 post views Thread by Derek Griffiths | last post: by
2 posts views Thread by trint | last post: by
6 posts views Thread by coriolis_wong | last post: by
reply views Thread by JeffP | last post: by
4 posts views Thread by Robert Bravery | last post: by

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.