Python binascii.unhexlify正在转换换行符。我可以阻止这个吗?

时间:2017-06-02 21:53:33

标签: python binascii

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

我在Windows上使用Ubuntu"安装,当我从那里执行它时,它工作正常。

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

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

完成自己的转换似乎是浪费。

1 个答案:

答案 0 :(得分:0)

我发现为什么0x0A字符被转换为0D0A(I.E. LF到CRLF)

这不是binascii的错。 我用了

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

当我以二进制模式打开输出文件时,此转换停止发生。

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

我在这里找到了这个答案: https://stackoverflow.com/a/9184137/7275012