我有多个DBF文件,文件名中包含拉丁字符,例如“阿诺”我正在尝试读取表格并将其导出到CSV。在使用python库时,我使用了dbf库,但在尝试导出为CSV,或者更改或删除字段名称时,它会出现问题。
我已经尝试了所有可能的西班牙语编码(代码页)来读取文件。
读取DBF文件(此部分有效)
import dbf
table = dbf.Table('C:\\Users\\...\\Desktop\\test.dbf', codepage="cp1252")
print (table)但当我尝试以下操作时:
table.delete_fields('año')即使在我打印文件时出现了字段列表,我也会得到这个错误。
field año not in table -- delete aborted当我尝试将DBF文件导出到CSV时,同样的事情也会发生:
dbf.export(table, "junk.csv")下面是我正在使用的库的文档:https://pythonhosted.org/dbf/dbf-module.html
我尝试过使用dbfread库,但每当遇到空行时它就会停止,因此对读取整个DBF表没有什么用处。
关于如何解决这个问题,有什么想法吗?
谢谢!
发布于 2020-09-27 23:30:48
我发现在dbf.Table 初始化中指定代码页并没有设置正确的代码页。一种解决方法是手动更改它,方法是指定:
with table:
table.codepage=dbf.CodePage("cp1252")https://stackoverflow.com/questions/60273191
复制相似问题