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

Python3如何提取DAT文件每行EOT控制字符前的XML payload内容

解决方法

原有代码错误原因

  • str.strip('EOT')的逻辑是删除字符串首尾所有E/O/T单个字符,不是匹配删除完整的EOT子串,无法实现截取EOT前内容的需求
  • 代码中加了break关键字,循环只会执行一次,仅处理第一行就终止,无法遍历整个文件
  • 直接使用open()打开文件未用上下文管理器,异常场景下可能出现文件句柄泄漏问题

修复后代码

# 若文件中的EOT是字面量的三个字母(和你提供的示例格式一致),使用以下代码
with open('FILE.dat', 'r', encoding='utf-8') as f:
    for line in f:
        # 仅按EOT分割一次,避免payload内部出现EOT时被误拆分
        payload = line.split('EOT', 1)[0].strip()
        # 过滤空行
        if payload:
            print(payload)

如果实际文件中的EOT是ASCII控制字符(传输结束符,ASCII编码为0x04),仅需要将分割符替换为'\x04'即可:

payload = line.split('\x04', 1)[0].strip()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 03:09:02