【发布时间】:2013-08-28 11:05:21
【问题描述】:
我有大约 300 个包含 .dbf 文件的文件夹,我想将它们转换为 .csv 文件。
我使用os.walk 查找所有.dbf 文件,然后使用dbfpy 模块的for 循环将每个.dbf 文件转换为.csv。它似乎正在正确查找和读取 .dbf 文件,但没有将它们转换为 .csv。我相信 csv.writer 代码是问题所在。我没有收到任何错误,但文件仍为 .dbf。
我下面的代码基于找到的代码here。
import csv
from dbfpy import dbf
import os
path = r"\Documents\House\DBF"
for dirpath, dirnames, filenames in os.walk(path):
for filename in filenames:
if filename.endswith('.DBF'):
in_db = dbf.Dbf(os.path.join(dirpath, filename))
csv_fn = filename[:-4]+ ".csv"
out_csv = csv.writer(open(csv_fn,'wb'))
names = []
for field in in_db.header.fields:
names.append(field.name)
out_csv.writerow(names)
for rec in in_db:
out_csv.writerow(rec.fieldData)
in_db.close()
【问题讨论】:
标签: python csv for-loop os.walk