前言
DAT文件可以理解为DATA数据文件, 工作中数仓平台使用的文件就是这种格式,通常还会有CTL和XML文件。
DAT -数据文件,以“”作为分隔符进行分割,类似CSV的格式
CTL - 核对控制文件,记录每个DAT文件对应的字节数以及行数
XML - 字段定义文件,记录DAT文件每个位置对应的字段信息(字段编码、中文名称)
工作中为了将业务导出的CSV数据文件转换成DAT数据文件进行使用,创建了一个转换格式的Python脚本。使用前需要安装Python运行环境,官网网址:Welcome to Python.org
正文代码
#!/user/bin/python
#-*- coding:utf8 -*-
import os
import re
import sys
file_name = 'part-00000-5c7e2250-192d-49d0-a1f9-807a89b42599'
xml_file_name = file_name + '.csv'
fobj = open(xml_file_name, 'r')
fobj_dat = open(file_name+'.DAT','w')
flag = True
testdata_num = 0
dic_task_des = {}
for line_num, line_content in enumerate(fobj.readlines()):
if flag == True:
testdata_num = testdata_num + 1
line_content = re.sub(',\n|,\r\n|\n','', line_content)
line_content = re.sub(',','|', line_content)
fobj_dat.writelines(line_content+'|'+'\n')
fobj_dat.close()
task_des={}
task_des[file_name] = dic_task_des
fobj.close()