首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当不支持编码时,如何从DBF文件中删除字段?

当不支持编码时,如何从DBF文件中删除字段?
EN

Stack Overflow用户
提问于 2020-02-18 11:06:42
回答 1查看 156关注 0票数 1

我有多个DBF文件,文件名中包含拉丁字符,例如“阿诺”我正在尝试读取表格并将其导出到CSV。在使用python库时,我使用了dbf库,但在尝试导出为CSV,或者更改或删除字段名称时,它会出现问题。

我已经尝试了所有可能的西班牙语编码(代码页)来读取文件。

读取DBF文件(此部分有效)

代码语言:javascript
复制
import dbf
table = dbf.Table('C:\\Users\\...\\Desktop\\test.dbf', codepage="cp1252")
print (table)

但当我尝试以下操作时:

代码语言:javascript
复制
table.delete_fields('año')

即使在我打印文件时出现了字段列表,我也会得到这个错误。

代码语言:javascript
复制
field año not in table -- delete aborted

当我尝试将DBF文件导出到CSV时,同样的事情也会发生:

代码语言:javascript
复制
dbf.export(table, "junk.csv")

下面是我正在使用的库的文档:https://pythonhosted.org/dbf/dbf-module.html

我尝试过使用dbfread库,但每当遇到空行时它就会停止,因此对读取整个DBF表没有什么用处。

关于如何解决这个问题,有什么想法吗?

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2020-09-27 23:30:48

我发现在dbf.Table 初始化中指定代码页并没有设置正确的代码页。一种解决方法是手动更改它,方法是指定:

代码语言:javascript
复制
with table:
    table.codepage=dbf.CodePage("cp1252")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60273191

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档