背景介绍
dBase数据库文件(DBF)是一种数据库文件格式,其扩展名是 ,由各种应用程序和数据库系统使用。.dbf
逗号分隔值(CSV)文件是一种文本文件,使用逗号来分隔数据记录的字段(=line)。
问题的提出
给定一个.dbf 文件my_db.dbf 。如何将其转换为CSV文件my_db.csv ?
方法1: dbfread模块
要在Python中把一个DBF文件转换成CSV文件,使用dbfread 模块,创建一个DBF() 对象,并使用这个对象遍历所有dbf 记录。然后,你可以通过使用csv.writer() 功能,轻松地一次写一行/一条记录。
你可能需要使用pip安装以下两个库。
pip install dbfpypip install dbfread
[下面是你如何检查这些库是否已经安装]在你的环境中。
一旦你确定这些库已经安装,运行下面的代码,在Python中把你的DBF文件转换成CSV。
import csv
from dbfread import DBF
def dbf_to_csv(path):
'''Converting the .dbf at the specified path and
returns the name of the .csv file after conversion.
The .csv file has same path and naming scheme. Examples:
(1) my_file.dbf --> my_file.csv
(2) /path/to/file/my_file.dbf --> /path/to/file/my_file.csv
'''
# Set the name of the CSV file
csv_path = path[:-4] + ".csv"
# Create a DBF object, i.e., load the .dbf file into the code
dbf = DBF(path)
# Create a CSV file and fill it with dbf data
with open(csv_path, 'w', newline = '') as f:
# Create the CSV writer
writer = csv.writer(f)
# Write the CSV column names
writer.writerow(dbf.field_names)
# Write the CSV rows
for record in dbf:
writer.writerow(list(record.values()))
return csv_path
dbf_to_csv('my_file.dbf')
方法 2: dbf 模块
要将一个或多个.dbf 文件转换为CSV文件,请安装dbf 模块并在你的Python shell中运行dbf.export(path) 或dbf.export(path_1, path_2, ...) 。
请确保在你的命令行或 shell 中使用以下命令安装 [dbf](https://pypi.org/project/dbf/)模块,在你的命令行或 shell 中使用以下命令。
pip install dbf
安装后,在你的Python脚本中运行以下代码,在Python中把DBF转换成CSV文件。
import dbf
dbf.export('my_file.dbf')
你可以通过在dbf.export() 函数中传递多个字符串路径参数来导出多个文件。
像这样。
import dbf
dbf.export('my_file_1.dbf', 'my_file_2.dbf', 'my_file_3.dbf')