Pythonスクリプトを使用して.csvファイルを.dbfファイルに変換するにはどうすればよいですか?このコードをオンラインで見つけましたが、どれほど信頼できるかわかりません。この機能を備えたモジュールはありますか?
5 に答える
dbfパッケージを使用すると、次のようなコードを含む基本的なcsvファイルを取得できます。
import dbf
some_table = dbf.from_csv(csvfile='/path/to/file.csv', to_disk=True)
これにより、同じ名前で、文字フィールドまたはメモフィールドのいずれかと、f0、f1、f2などのフィールド名を持つテーブルが作成されます。
別のファイル名の場合はfilename
パラメーターを使用します。フィールド名がわかっている場合は、field_names
パラメーターを使用することもできます。
some_table = dbf.from_csv(csvfile='data.csv', filename='mytable',
field_names='name age birth'.split())
むしろ基本的なドキュメントはここにあります。
開示:私はこのパッケージの作者です。
CSVファイルを読み取り、DBFファイルを書き込むものはネット上にありません。そのため、CSVファイルを呼び出して2つのファイルパスを指定するだけです。DBFフィールドごとに、タイプ、サイズ、および(該当する場合は)小数点以下の桁数を指定する必要があります。
いくつかの質問:
どのソフトウェアが出力DBFファイルを消費しますか?
「the」(唯一の)DBFファイル形式のようなものはありません。dBase IIIが必要ですか?dBase 4?7?Visual FoxPro?等?
書き込む必要のあるテキストフィールドの最大長はどれくらいですか?非ASCIIテキストはありますか?
Pythonのどのバージョンですか?
要件が最小限である場合(dBase III形式、非ASCIIテキストなし、テキスト<= 254バイト長、Python 2.X)、引用したクックブックレシピで十分です。
私の知る限り、よく磨かれたものはありません。私は何年にもわたってxBaseファイルを何度も操作しなければならず、それを実行する必要があるときにそれを実行するためのコードを記述し続けています。バックアップのどこかに、それを実行するための非常に機能的な純粋Pythonライブラリがありますが、それがどこにあるのか正確にはわかりません。
幸い、xBaseファイル形式はそれほど複雑ではありません。もちろん、インターネットで仕様を見つけることができます。リンクしたモジュールは一見問題ないように見えますが、もちろん、使用する前に、使用しているデータのコピーを作成してください。
すべてのベルとホイッスルを備えた、堅実で読み取り/書き込み可能な完全に機能するxBaseライブラリは、しばらくの間私のTODOリストに載っていたものです...運が良ければ、今年残っているものでそれを手に入れるかもしれません。 ...(残念ながら、おそらくそうではありません)。
ここでPythonスクリプトを作成しました。あらゆるcsvレイアウトに合わせてカスタマイズできる必要があります。これが可能になる前に、DBFデータ構造を知る必要があります。このスクリプトには、2つのcsvファイルが必要です。1つはDBFヘッダー設定用で、もう1つは本文データ用です。幸運を。