You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何将以|为分隔符的员工信息txt文件转换为dat文件

Python实现|分隔符员工txt文件转dat文件方法

.dat没有统一的强制格式标准,属于业务自定义的结构化数据文件,以下实现基于Python标准库,不需要安装额外依赖,覆盖绝大多数通用业务场景。

实现步骤

  • 提前确认源txt文件的编码(常见为utf-8、gbk),避免读取乱码
  • 逐行读取源文件,清洗空行、首尾无效空白字符
  • 校验每行字段数量,过滤不符合员工信息结构的脏数据
  • 按业务要求的.dat格式写入目标文件,分两种常见场景提供代码:

场景1:输出纯文本格式dat(多数内部系统通用)

这类dat本质是改了后缀的结构化文本,保留原|分隔符即可,代码如下:

# 按需修改以下配置项
src_path = "员工信息.txt"
tgt_path = "员工信息.dat"
file_encoding = "utf-8"  # 源文件是gbk编码就替换为"gbk"
std_field_num = 5  # 替换为实际员工信息字段总数,比如工号/姓名/部门/入职日期/手机号共5项就填5

with open(src_path, "r", encoding=file_encoding) as f_src, \
     open(tgt_path, "w", encoding=file_encoding) as f_tgt:
    for raw_line in f_src:
        line = raw_line.strip()
        # 跳过空行
        if not line:
            continue
        fields = [item.strip() for item in line.split("|")]
        # 过滤字段数不对的异常行
        if len(fields) != std_field_num:
            print(f"跳过异常行:{line},字段数不符合要求")
            continue
        # 写入清洗后的内容
        f_tgt.write("|".join(fields) + "\n")

print(f"转换完成,目标文件路径:{tgt_path}")

场景2:输出定长二进制格式dat(老系统兼容场景)

部分老旧系统要求dat为二进制定长存储,每个字段占固定字节长度,不足补空格、超长截断,代码如下:

# 按需修改配置项
src_path = "员工信息.txt"
tgt_path = "员工信息.dat"
file_encoding = "utf-8"
# 按字段顺序配置每个字段的固定长度,比如工号10位、姓名20位、部门30位、入职日期10位、手机号11位
field_length = [10, 20, 30, 10, 11]

with open(src_path, "r", encoding=file_encoding) as f_src, \
     open(tgt_path, "wb") as f_tgt:
    for raw_line in f_src:
        line = raw_line.strip()
        if not line:
            continue
        fields = [item.strip() for item in line.split("|")]
        if len(fields) != len(field_length):
            print(f"跳过异常行:{line},字段数不符合要求")
            continue
        # 拼接定长二进制内容
        bin_content = b""
        for idx, val in enumerate(fields):
            # 长度不足右侧补空格,超长直接截断
            processed_val = val.ljust(field_length[idx])[:field_length[idx]]
            bin_content += processed_val.encode(file_encoding)
        f_tgt.write(bin_content + b"\n")

print(f"转换完成,目标文件路径:{tgt_path}")

注意:如果你的业务对dat文件有特殊要求(比如带文件头校验、字段加密、特殊分隔符),直接在写入环节对应调整处理逻辑即可,上述代码可作为基础框架直接修改使用。

内容的提问来源于stack exchange,提问作者Dev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 10:27:16