将 .DBF 转换为 .csv 时出现 BadDataError
BadDataError when converting .DBF to .csv
我正在尝试使用 Python3 将 .DBF 文件转换为 .csv。我正在尝试使用 dbf 库 (https://pypi.python.org/pypi/dbf)
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 文件可以在 Excel 中打开并且看起来没问题。但是,当我 运行 上面的方法时,我在上面的 dbf.export 行得到一个错误:
dbf.ver_33.BadDataError: record data is not the correct length (should be 1442, not 1438)
dbf 文件在 Excel 中可以正常打开,但是,我需要自动执行此转换。我应该做些什么不同的事情来获得这种从 .DBF 文件创建 pdf 的方法?
如果文件在 Excel 中打开正确,那么我建议您使用 Excel 为您转换为 csv
格式,如下所示:
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
告诉 Excel 以 CSV
格式保存文件。
要将工作簿导出为 PDF,您可以使用:
wb.ExportAsFixedFormat(0, r"output.pdf")
如果您还没有安装 win32com
,您应该可以使用以下软件:
pip install pypiwin32
此解决方案仅适用于 Windows 安装。
我正在尝试使用 Python3 将 .DBF 文件转换为 .csv。我正在尝试使用 dbf 库 (https://pypi.python.org/pypi/dbf)
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 文件可以在 Excel 中打开并且看起来没问题。但是,当我 运行 上面的方法时,我在上面的 dbf.export 行得到一个错误:
dbf.ver_33.BadDataError: record data is not the correct length (should be 1442, not 1438)
dbf 文件在 Excel 中可以正常打开,但是,我需要自动执行此转换。我应该做些什么不同的事情来获得这种从 .DBF 文件创建 pdf 的方法?
如果文件在 Excel 中打开正确,那么我建议您使用 Excel 为您转换为 csv
格式,如下所示:
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
告诉 Excel 以 CSV
格式保存文件。
要将工作簿导出为 PDF,您可以使用:
wb.ExportAsFixedFormat(0, r"output.pdf")
如果您还没有安装 win32com
,您应该可以使用以下软件:
pip install pypiwin32
此解决方案仅适用于 Windows 安装。