Python阻止将十六进制解码为ASCII,同时从我的Var中删除反斜杠
我想从变量中去掉一些不需要的符号。在这种情况下,符号是反斜杠。我使用的是一个十六进制数,作为一个例子,我将在下面展示一些简短的简单代码。但我不希望python将我的十六进制转换为ASCII,我如何防止这种情况发生。?我有一些很长的shell代码供asm以后使用,它们非常长,手动删除Python阻止将十六进制解码为ASCII,同时从我的Var中删除反斜杠,python,Python,我想从变量中去掉一些不需要的符号。在这种情况下,符号是反斜杠。我使用的是一个十六进制数,作为一个例子,我将在下面展示一些简短的简单代码。但我不希望python将我的十六进制转换为ASCII,我如何防止这种情况发生。?我有一些很长的shell代码供asm以后使用,它们非常长,手动删除\是一个很长的过程。我知道有不同的方法,比如使用echo-e“x\x\x\x”>输出等,但我的整个脚本都将用python编写。 谢谢 最后,我希望它打印我的变量: >>> print b x31x32
\
是一个很长的过程。我知道有不同的方法,比如使用echo-e“x\x\x\x”>输出等,但我的整个脚本都将用python编写。
谢谢
最后,我希望它打印我的变量:
>>> print b
x31x32x33x34x35x36
代码中有两个问题
首先是一个简单的问题:
strip()
只删除一个引用。因此,您应该使用替换(“\\”,“”)
。这将用“”替换每个反斜杠,这与删除它相同
第二个问题是带有反斜杠的蟒蛇行为:
要使示例正常工作,您需要在字符串前面附加一个“r”,以指示它是原始字符串<代码>a=r“\x31\xC0\x50\x68\x74\x76”
。在原始字符串中,反斜杠不会转义字符,而是保持反斜杠
>>> r"\x31\xC0\x50\x68\x74\x76"
'\\x31\\xC0\\x50\\x68\\x74\\x76'
变量中没有反斜杠:
>>a=“\x31\xC0\x50\x68\x74\x76”
>>>印刷品(a)
1ÀPhtv
以换行符为例:用Python编写“\n”
将为您提供一个字符的字符串——换行符——并且没有反斜杠。请参阅以获取这些的完整语法
现在,如果您真的想用这样的反斜杠来写字符串,可以使用r
修饰符:
>>a=r“\x31\xC0\x50\x68\x74\x76”
>>>印刷品(a)
\x31\xC0\x50\x68\x74\x76
>>>打印(a.替换('\\','')
x31xC0x50x68x74x76
但是,如果要将常规字符串转换为十六进制编码符号,可以逐个字符进行转换,将其转换为数字(“\x31”
==“1”
-->49
),然后转换为十六进制(“0x31”
),最后剥离第一个字符:
>>a=“\x31\xC0\x50\x68\x74\x76”
>>>打印(“”.join([hex(ord(x))[1:]表示a中的x]))
“x31xc0x50x68x74x76”
谢谢,现在它完全讲得通了
>>> r"\x31\xC0\x50\x68\x74\x76"
'\\x31\\xC0\\x50\\x68\\x74\\x76'