add fields in a existing dbf
Ethan Furman
ethan at stoneleaf.us
Tue Aug 11 12:12:44 EDT 2009
Alonso Luján Torres Taño wrote:
> Hi!
>
> I'm trying to modify a dbf adding a new field in a python script, but I
> can't.
>
> Just I can add a field in new dbf created in the same script.
>
> I tryed with:
>
> db = dbf.Dbf("../filesource.dbf",new =False, readOnly=False)
> ...
> db.addField(("PESO","N",32,8))
>
> and return error:
>
> Traceback (most recent call last):
> File "script.py", line 34, in <module>
> db.addField(("PESO","N",32,8))
> File "/usr/lib/python2.5/site-packages/dbfpy/dbf.py", line 229, in
> addField
> "structure can't be changed")
> TypeError: ('At least one record was added, ', "structure can't be
> changed")
>
>
> I have not idea of what error I make.
>
> If someone can help me, I'll so gratefull.
>
> Thanks!
>
I am not familiar with dbfpy, but the dbf files I am familiar with do
not support 32 digit Numerics. Did you mean 12?
At any rate, if you use http://groups.google.com/group/python-dbase
the commands would be:
import dbf
db = dbf.Table("../filesource.dbf")
db.add_fields("peso N(12.8)")
db.close()
and you'll have your field -- assuming, of course, you have write
priveleges, etc.
Hope this helps!
~Ethan~
Disclaimer: I am the author of python-dbase.
More information about the Python-list
mailing list