.DBF转换为.csv时出现BadDataError

analyticsPierce

我正在尝试使用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,我应该做些什么?

马丁·埃文斯(Martin Evans)

如果该文件在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安装。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章