【问题标题】:How to put special character between string [duplicate]如何在字符串之间放置特殊字符[重复]
【发布时间】:2013-05-14 18:44:35
【问题描述】:

我有一个类似"0013A200305EFF96" 的字符串。我想将其更改为"\x00\x13\xA2\x00\x30\x5E\xFF\x96" 的形式。特殊字符是"\x"。我怎样才能以省时的方式做到这一点?

【问题讨论】:

    标签: python


    【解决方案1】:

    Python2

    >>> "0013A200305EFF96".decode("hex")
    '\x00\x13\xa2\x000^\xff\x96'
    

    Python3

    >>> bytes.fromhex("0013A200305EFF96")
    b'\x00\x13\xa2\x000^\xff\x96'
    

    【讨论】:

    • 这是什么 ^in 结果
    • 你也想转义可打印的字符吗?
    • 结果也应该是字符串形式
    • 所以 \ 是字面意思?
    【解决方案2】:

    gnibbler 的答案可能正是您真正在寻找的;但为了完整起见,以下是插入任何序列的方法:

    >>> '\\x'.join(a[i:i+2] for i in xrange(0, len(a), 2))
    

    【讨论】:

    • 如果我愿意,我可以将结果更改为十六进制值吗,即结果将是 '\x00\x13\xA2\x00\x30\x5E\xFF\x96'
    【解决方案3】:

    如果你的意思是字面意思\x:

    import re
    s= "0013A200305EFF96"
    s=re.sub("(..)", r"\x\1",s)
    print s
    

    输出

    \x00\x13\xA2\x00\x30\x5E\xFF\x96
    

    【讨论】:

    • 请问一个问题,如果我有 "\x12" 作为字符串,如何将它转换为十六进制值,它的类型和值是 '\x12' ?
    猜你喜欢
    • 2021-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-19
    • 1970-01-01
    • 1970-01-01
    • 2020-12-06
    相关资源
    最近更新 更多