Python阻止将十六进制解码为ASCII,同时从我的Var中删除反斜杠

Python阻止将十六进制解码为ASCII,同时从我的Var中删除反斜杠,python,Python,我想从变量中去掉一些不需要的符号。在这种情况下,符号是反斜杠。我使用的是一个十六进制数,作为一个例子,我将在下面展示一些简短的简单代码。但我不希望python将我的十六进制转换为ASCII,我如何防止这种情况发生。?我有一些很长的shell代码供asm以后使用,它们非常长,手动删除\是一个很长的过程。我知道有不同的方法,比如使用echo-e“x\x\x\x”>输出等,但我的整个脚本都将用python编写。 谢谢 最后,我希望它打印我的变量: >>> print b x31x32

我想从变量中去掉一些不需要的符号。在这种情况下,符号是反斜杠。我使用的是一个十六进制数,作为一个例子,我将在下面展示一些简短的简单代码。但我不希望python将我的十六进制转换为ASCII,我如何防止这种情况发生。?我有一些很长的shell代码供asm以后使用,它们非常长,手动删除
\
是一个很长的过程。我知道有不同的方法,比如使用
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'