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

Python写入十六进制字符串到文件时,如何避免Windows自动添加CR?

解决Windows下写入LF自动添加CR的问题

Windows系统中,用文本模式("w")打开文件时,会自动把换行符LF(0A)转换成CRLF(0D0A),这就是你看到额外0D字节的原因。要阻止这个行为,只需改用二进制写入模式打开文件,同时修正十六进制字符串转字节的方式:

修正后的代码

toWrite = "020203480A"

# 将十六进制字符串转为字节序列
byte_data = bytes.fromhex(toWrite)

# 以二进制写入模式打开文件
with open("example.bin", "wb") as file:
    file.write(byte_data)

关键说明

  • "wb"模式:二进制写入模式,此时文件操作不会对任何字节做自动转换,写入的内容会原封不动保存到文件中,彻底避免LF被转成CRLF的问题。
  • bytes.fromhex():Python内置方法,能直接将十六进制字符串按两位一组解析成对应的字节,完美适配你写入多字节二进制数据的需求。

原来的代码存在两个问题:一是用了文本模式导致换行符转换,二是chr(int(toWrite, 16))会把整个长十六进制字符串解析成单个整数再转成Unicode字符,无法正确生成多字节的二进制数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 03:35:06