2016-09-27 49 views
0

Python3を使用して.DBFファイルを.csvに変換しようとしています。私が使用していますDBFファイルをExcelで開くと細かいように見えることができます(https://pypi.python.org/pypi/dbf.DBFを.csvに変換するときのBadDataError

import dbf 

def dbf_to_csv(dbf_file_name, csv_file_name): 
    dbf_file = dbf.Table(dbf_file_name, ignore_memos=True) 
    dbf_file.open() 
    dbf.export(dbf_file, filename = csv_file_name, format='csv', header=True) 

DBFライブラリを使用しようとしています。私は上記の方法を実行したときしかし、私は上記のdbf.exportライン上のエラーを取得する:

dbf.ver_33.BadDataError: record data is not the correct length (should be 1442, not 1438) 

DBFファイルは、Excelで正常に開いた、しかし、私は、この変換を自動化する必要があります。この方法で.DBFファイルからpdfを作成するには、どうしたらよいですか?

+0

ファイルを送信できる場合は、ファイルを確認してください。私のメールアドレスは 'dbf'パッケージにあります。 –

答えて

0

ファイルはExcelで正常に開いている場合は、私はあなたが以下のようにcsv形式へのあなたのための変換を行うためにExcelを使用することをお勧め:

import win32com.client as win32 

excel = win32.gencache.EnsureDispatch('Excel.Application') 

wb = excel.Workbooks.Open(r"input.dbf") 
excel.DisplayAlerts = False 
wb.DoNotPromptForConvert = True 
wb.CheckCompatibility = False 
wb.SaveAs(r"output.csv", FileFormat=6, ConflictResolution=2) 
excel.Application.Quit() 

が必要なファイルへの完全なパスを追加することを忘れないでください。注:FileFormat=6は、ファイルにCSV形式で保存するように指示します。

はPDFとしてブックをエクスポートするには、使用できます。

pip install pypiwin32 

このソリューションは、次のとおりです。あなたはすでにwin32comがインストールされていない場合は

wb.ExportAsFixedFormat(0, r"output.pdf") 

すると次のような使用することができるはずですWindowsのインストールにのみ適しています。

+0

そのライブラリは私のためにインストールされません。このエラーが表示されます:print "Building pywin32"、pywin32_version ^ SyntaxError: 'print'の呼び出しでカッコがありません これはWindowsマシンにのみインストールできますか?私は本当に何かクロスプラットフォームが必要です。 – analyticsPierce

+0

残念ながら、 'win32'はWindowsのみです。申し訳ありません。 –

+0

私はこれをWindowsマシンで手に入れ、次のようなエラーが出ていますか?:ファイル "。\ shared \ utilities.py"、58行目、dbf_to_csv wb.SaveAs(FileFormat = 6、ConflictResolution = 2) ファイル「C:\ cygwin \ tmp \ gen_py \ 3.5 \ 00020813-0000-0000-C000-000000000046x0x1x8 \ _Workbook.py」259行、SaveAs 、Local) pywintypes.com_error :(-2147352567、 '例外が発生しました(0、 'Microsoft Excel'、 'WorkbookクラスのSaveAsメソッドが失敗しました'、 'xlmain11.chm'、0、-2146827284)、なし) – analyticsPierce

関連する問題