Python binascii.unhexlify 正在转换换行符。我可以防止这种情况吗?

Python binascii.unhexlify is converting linefeed characters. Can I prevent this?

我有一串代表十六进制数字的字符对(例如 0f 表示十进制 15)。 我需要二进制格式的,所以我打电话给 binArray = binascii.unhexlify(finalString)

我安装了 "bash on Ubuntu on Windows",当我从那里执行此操作时它工作正常。

但是,我需要从 windows 环境中的 .bat 文件调用脚本。 当我从 .bat 文件调用完全相同的 python 程序时,如果 unhexlify 在十六进制字符串中看到“0a”,它会将其转换为 0d 0a(在二进制输出中)。 这不是文本文件,行尾转换破坏了我的数据!

当我从 windows 环境中调用 unhexlify 时,有没有办法说服它停止这样做?

我自己进行转换似乎很浪费。

我发现了为什么 0x0A 字符被转换为 0D0A(即 LF 到 CRLF)

这不是 binascii 的错。 我用了

outfile = open(scriptDir + "Output/NVRAM/NVDATAout", 'w') 打开文件,这意味着文本模式,因此写入适合本地系统的换行符转换。

当我以二进制模式打开输出文件时,这种转换停止了。

outfile = open(scriptDir + "Output/NVRAM/NVDATAout", 'wb')

我在这里找到了这个答案: