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

Python2.7写入十六进制字符串到二进制文件时0A前多出0D问题

问题修复方案

问题根因

  • Python 2.7 Windows 环境下,open 函数默认的 w 写入模式为文本模式
  • 文本模式下系统会自动对换行符做平台适配:将字节 0x0A(对应 \n)自动转换为 Windows 标准换行序列 0x0D 0x0A(对应 \r\n),这就是你看到每个 0A 前多出 0D、文件字节数偏大的原因。

修复代码

将文件打开模式替换为二进制写入模式 wb 即可完全避免自动转义,写入的字节和输入的十六进制字符串完全一一对应:

import binascii
s = "0ABD"
f = open("output", "wb")
f.write(binascii.a2b_hex(s))
f.close()

补充说明:后续读取该文件时,无论使用 Python 还是 VB.NET,都建议使用二进制模式读取,避免出现反向的换行符转义问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 12:36:04