所以我是Python新手,我的目标是将不同的大型dbf文件转换为csv文件。我看过不同的代码,但不理解很多部分。下面的代码运行于data1.dbf,而不是data2.dbf。我得到一个错误声明:
UnicodeDecodeError: 'ascii' codec can't decode byte...
我确实研究了dbfread的编码,但它说不需要编码……我需要的另一部分是将这些大型DBF转换成csv。如果我使用dbfread,我不知道将其放入csv文件的代码
import sys
import csv
from dbfread import DBF
file = "C:/Users/.../Documents/.../data2.dbf"
table = DBF(file)
writer = csv.writer(sys.stdout)
writer.writerow(table.field_names)
for record in table:
writer.writerow(list(record.values()))
下面是使用dbf库的另一次尝试
import dbf # instead of dbfpy
for table in sys.argv[1:]:
dbf.export(table, header = True)
这一次运行时,命令提示语句“python dbf2csv_EF.py data1.dbf”会在尝试两个dbf文件时产生不同的错误。错误是:
...AttributeError: 'str' object has no attribute '_meta'
由于您在Windows上,并且正在尝试写入
sys.stdout
,因此我认为(部分)您的第一个问题是Windows控制台对Unicode不是很熟悉,您应该改为写入文件假设是这样的话
可能会做到这一点-使用例如“pythonthatscript.py foo.dbf”运行脚本时,应该以“foo.dbf.csv”结束
相关问题 更多 >
编程相关推荐