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

如何用Python 2.7脚本向Bash写入4个原始十六进制字节?

在Python 2.7中向stdout写入原始十六进制字节的方法

其实在Python 2.7里做这件事比Python 3更直接——因为Python 2的str类型本身就是字节序列,标准输出sys.stdout默认也直接处理字节流,不需要像Python 3那样切换到buffer对象。下面给你两种常用的实现方式:

  • 直接写入字节字符串
    你可以直接把十六进制值转成对应的转义字符,用sys.stdout.write()输出。比如要写入0x01、0x02、0x03、0x04这四个字节,代码如下:

    import sys
    # 每个\x后面跟两位十六进制数,对应一个字节
    sys.stdout.write('\x01\x02\x03\x04')
    # 如果需要确保字节立即输出(避免缓冲),可以加上flush
    sys.stdout.flush()
    
  • 从十六进制字符串转换后写入
    如果你手里是十六进制格式的字符串(比如"01020304"),可以用binascii模块的unhexlify()方法把它转换成字节序列,再写入stdout:

    import sys
    import binascii
    
    hex_string = "01020304"
    raw_bytes = binascii.unhexlify(hex_string)
    sys.stdout.write(raw_bytes)
    sys.stdout.flush()
    

简单总结一下:Python 2.7中不需要额外处理字节和字符串的转换,直接用sys.stdout.write()就能输出原始字节,这和Python 3的区别在于,Python 3的stdout默认是文本模式,必须通过sys.stdout.buffer来写入字节,而Python 2没有这个限制。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 10:01:27