Python 2.7とdbfパッケージを使用して、ビジュアルfoxpro 6dbfファイルにレコードを書き込んだり削除したりしようとしています。
import dbf
tbl = dbf.Table('test.dbf')
tbl.open()
rec = tbl[0]
print(rec.__class__)
rec.delete_record()
結果:
<class 'dbf.ver_2.Record'>
Traceback (most recent call last):
File "C:/Python/Projects/test/test.py", line 11, in <module>
rec.delete_record()
File "C:\Python\Projects\test\venv\lib\site-packages\dbf\ver_2.py", line 2503, in __getattr__
raise FieldMissingError(name)
dbf.ver_2.FieldMissingError: 'delete_record: no such field in table'
そのパッケージのドキュメントは次のとおりです:http://pythonhosted.org/dbf/
レコードオブジェクトには実際にはこのメソッドがありませんが、文書化されています。テーブルは読み取り/書き込みモードで開かれます。(ただし、Table()コンストラクターが開いたテーブルを返す必要があることも事実ですが、代わりに閉じたテーブルを返します。)
私は何が間違っているのですか?
最大の問題は、他に選択肢がないことです。私が知っている他の唯一のパッケージは「dbfpy」ですが、これはvfoxpro 6テーブルを処理せず、異なる文字エンコードを処理しません。
そのドキュメントは古くなっています。(謝罪いたします。)
あなたが欲しいものは:
dbf.delete(rec)
tbl.pack()
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加