我需要转换成csv文件的字符串数字值的DBF文件
DBF文件列包含数字数据:
NUMBER,C,12 | ...
584413
079711
478293
000865
我使用这个python函数将其转换为csv:
from dbfread import DBF
def dbf_to_csv(dbf_table_pth):#Input a dbf, output a csv, same name, same path, except extension
csv_fn = dbf_table_pth[:-4]+ ".csv" #Set the csv file name
table = DBF(dbf_table_pth)# table variable is a DBF object
with open(csv_fn, 'w', encoding='utf-8', newline = '') as f:# create a csv file, fill it with dbf content
writer = csv.writer(f, dialect='excel')
writer.writerow(table.field_names)# write the column name
for record in table:# write the rows
writer.writerow(list(record.values()))
return csv_fn# return the csv name
当我在记事本中打开它时,它会导致下面的csv结果:
NUMBER, ...
"584413,0", ...
"79711,0", ...
"478293,0", ...
"865,0", ...
我如何改进func以获得这样的结果?:
NUMBER, ...
584413, ...
079711, ...
478293, ...
000865, ...
1条答案
按热度按时间3df52oht1#
基于对DBF表中数据格式的猜测。使用
FieldParser
从这里自定义字段类型更改NUMBER
字段的输出。使用locale
设置区域设置,将,
识别为十进制标记,然后使用locale.atof
转换为浮点数,使用int()
转换为整数。