2016-06-17 4 views
1

私はこのような何かについて持っている:dbfファイルにフィールドを追加するには?

from dbfpy import dbf 
import random 

db = dbf.Dbf('DMWWGS84/DMAWGS84.dbf',new=False) 
db.addField(("Data","D")) 
for record in db: 
    print record 
    record["Data"]=random.random() 
db.close() 

をしかし、それは文句:

Traceback (most recent call last): 
    File "merge_csv.py", line 5, in <module> 
    db.addField(("Data","D")) 
    File "/Users/alex/anaconda2/lib/python2.7/site-packages/dbfpy/dbf.py", line 246, in addField 
    raise TypeError("At least one record was added, " 
TypeError: At least one record was added, structure can't be changed 

何のレコードが話しているのですか?これを行うには良い方法ですか?

+0

すでにその中にあるレコード。 –

+0

@ IgnacioVazquez-Abrams:すでにあるレコードを「追加」するにはどうしたらいいですか?あなたが正しい場合、それはひどいエラーメッセージです。 –

+0

@EthanFurman:おそらく世界最高の言葉遣いではありません。 –

答えて

2

ではなく、私のdbfライブラリを使用します。

# lightly tested 

import dbf 
import random 

db = dbf.Table('whatever.dbf') 
with db: 
    db.add_fields('data N(12,7)') 
    for record in db: 
     dbf.write(record, data=random.random()) 

ピップは、DBF

(あなたが最初pip install enum34する必要があるかもしれません)

して、コマンドをインストールNB:日付フィールドに乱数を書き込むと、でなく、が正常に動作します。

+0

@ BigBoy1337:最後の文章が固定されています(「not」が非常に重要な単語になります! –

関連する問題