在Python中将字符串转换为压缩数据

在Python中将字符串转换为压缩数据,python,Python,我的目标是在Python中将地址字符串转换为压缩数据。例如: address = '7fffde53bf80' #input formated = '\x80\xbf\x53\xde\xff\x7f' #desired output 我写了一个简单的脚本来完成这个任务 x = range(len(address)) evn = [e for e in x if e % 2 == 0][::-1] #reverse the list formated = '' i =

我的目标是在Python中将地址字符串转换为压缩数据。例如:

address = '7fffde53bf80'             #input
formated  = '\x80\xbf\x53\xde\xff\x7f' #desired output
我写了一个简单的脚本来完成这个任务

x = range(len(address))
evn = [e for e in x if e % 2 == 0][::-1] #reverse the list
formated = ''
i = 0
while(i < len(evn)):
    formated = formated + r'\x' + address[evn[i]:evn[i] + 2]
    i = i + 1
print formated
x=范围(len(地址))
evn=[e代表x中的e,如果e%2==0][:-1]#反转列表
格式化=“”
i=0
而(i
我相信在python中会有更好的方法来实现这一点。有人能告诉我怎么做吗?

使用
str.decode()
将十六进制值解码为字节,然后反转:

address.decode('hex')[::-1]
演示:

使用
str.decode()
将十六进制值解码为字节,然后反转:

address.decode('hex')[::-1]
演示:

使用
str.decode()
将十六进制值解码为字节,然后反转:

address.decode('hex')[::-1]
演示:

使用
str.decode()
将十六进制值解码为字节,然后反转:

address.decode('hex')[::-1]
演示:



令人惊叹的!!。。谢谢Martinjn@Sanket:注意,这在Python 2.6.6上似乎无法正常工作:可打印ASCII范围(\x20-\x7e)中的字节解码为其可打印形式。希望这不会成为您的问题。@PM2Ring:不要将字节值与其表示形式混淆。所有版本的Python都会显示可打印字符,而不是转义序列。@MartijnPieters:Ah,好的。只是上面的演示代码在我的系统上打印了
'\x80\xbfS\xde\xff\x7f'
。但我想这对OP的应用程序来说并不重要。@PM2Ring:对我来说不重要。我正在将
str.decode()
的输出写入一个文件,当我在hex编辑器中打开该文件时,它正是我想要的样子!!。。谢谢Martinjn@Sanket:注意,这在Python 2.6.6上似乎无法正常工作:可打印ASCII范围(\x20-\x7e)中的字节解码为其可打印形式。希望这不会成为您的问题。@PM2Ring:不要将字节值与其表示形式混淆。所有版本的Python都会显示可打印字符,而不是转义序列。@MartijnPieters:Ah,好的。只是上面的演示代码在我的系统上打印了
'\x80\xbfS\xde\xff\x7f'
。但我想这对OP的应用程序来说并不重要。@PM2Ring:对我来说不重要。我正在将
str.decode()
的输出写入一个文件,当我在hex编辑器中打开该文件时,它正是我想要的样子!!。。谢谢Martinjn@Sanket:注意,这在Python 2.6.6上似乎无法正常工作:可打印ASCII范围(\x20-\x7e)中的字节解码为其可打印形式。希望这不会成为您的问题。@PM2Ring:不要将字节值与其表示形式混淆。所有版本的Python都会显示可打印字符,而不是转义序列。@MartijnPieters:Ah,好的。只是上面的演示代码在我的系统上打印了
'\x80\xbfS\xde\xff\x7f'
。但我想这对OP的应用程序来说并不重要。@PM2Ring:对我来说不重要。我正在将
str.decode()
的输出写入一个文件,当我在hex编辑器中打开该文件时,它正是我想要的样子!!。。谢谢Martinjn@Sanket:注意,这在Python 2.6.6上似乎无法正常工作:可打印ASCII范围(\x20-\x7e)中的字节解码为其可打印形式。希望这不会成为您的问题。@PM2Ring:不要将字节值与其表示形式混淆。所有版本的Python都会显示可打印字符,而不是转义序列。@MartijnPieters:Ah,好的。只是上面的演示代码在我的系统上打印了
'\x80\xbfS\xde\xff\x7f'
。但我想这对OP的应用程序来说并不重要。@PM2Ring:对我来说不重要。我正在将
str.decode()
的输出写入一个文件,当我在hex编辑器中打开该文件时,它正是我想要的