从 BytesIo 打开 DBF 文件
Open a DBF file from a BytesIo
我尝试从从 Internet 获取的 DBF 中删除字段。
它是压缩的,为了避免在应用我必须对其进行的修改之前在磁盘上写入任何数据,我将它提取到一个 BytesIo 对象中。
然后,首先:dbf 库是否像 BytesIo 一样处理内存文件?
第二:我不需要的字段删除方法是否有效?
这是我最终得到的结果:
def removeFields(name, raw):
import dbf
data = io.BytesIO(raw)
print "Editing "+name
table = dbf.Table(data, on_disk=False)
table.open()
table.delete_fields(rmv_dict[name])
table.close()
return (data.getvalue())
遗憾的是,dbf 库不处理任何内存文件(由她的作者确认)。
一些像 dbfread 处理它们,但不提供任何方法来简单地在他们的文档中删除字段。
幸运的是,我找到了 reading/writing dbf 文件的配方,其中包含易于处理的变量:http://code.activestate.com/recipes/362715-dbf-reader-and-writer/
我尝试从从 Internet 获取的 DBF 中删除字段。
它是压缩的,为了避免在应用我必须对其进行的修改之前在磁盘上写入任何数据,我将它提取到一个 BytesIo 对象中。
然后,首先:dbf 库是否像 BytesIo 一样处理内存文件? 第二:我不需要的字段删除方法是否有效?
这是我最终得到的结果:
def removeFields(name, raw):
import dbf
data = io.BytesIO(raw)
print "Editing "+name
table = dbf.Table(data, on_disk=False)
table.open()
table.delete_fields(rmv_dict[name])
table.close()
return (data.getvalue())
遗憾的是,dbf 库不处理任何内存文件(由她的作者确认)。 一些像 dbfread 处理它们,但不提供任何方法来简单地在他们的文档中删除字段。
幸运的是,我找到了 reading/writing dbf 文件的配方,其中包含易于处理的变量:http://code.activestate.com/recipes/362715-dbf-reader-and-writer/