By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
459,996 Members | 1,051 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 459,996 IT Pros & Developers. It's quick & easy.

Dbase / foxpro files

P: n/a
Is there a module for reading/modifing db files from Python?
Thanks for help
B.
Jun 27 '08 #1
Share this Question
Share on Google+
10 Replies


P: n/a
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

P: n/a
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

P: n/a
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

P: n/a
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

P: n/a
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

P: n/a
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

P: n/a
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

P: n/a
Thanks for your reply.Is it possible to delete a record by using the
module?
Thanks
L>
Jun 27 '08 #10

P: n/a
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.