2016-03-27 13 views
1

Ich muss jedes Zeichen mit 00 für eine Zeichenfolge, die ich in Hex konvertiere konvertieren. Gibt es eine Möglichkeit, dies in Python 2.5.2 zu tun?Python codieren Hexadezimalfeld jedes Zeichen mit 00

z.B.

hextext = "H:\myfilepath.myfileending" 
encodedhex = str(hextext.encode('hex')) 
print encodedhex 

Er druckt derzeit

483a5c6d7966696c65706174682e6d7966696c65656e64696e67 

Aber es sollte

48003a005c00 etc. 

auch drucken, ich hatte gehofft, für alle Zeichen Großbuchstaben zu sein - ist es eine Möglichkeit, dies zu tun?

Ich frage mich auch, warum Hex manchmal auf diese Weise mit 00s gepolstert wird?

Antwort

3

wäre die einfachste Art und Weise

>>> hextext = "H:\myfilepath.myfileending" 
>>> encodedhex = "".join(c.encode("hex")+"00" for c in hextext) 
>>> encodedhex 
'48003a005c006d007900660069006c00650070006100740068002e006d007900660069006c00650065006e00640069006e006700' 
>>> encodedhex.upper() 
'48003A005C006D007900660069006C00650070006100740068002E006D007900660069006C00650065006E00640069006E006700' 

Aber sind Sie sicher, dass Sie diese Ausgabe wollen und nicht eine UTF-16-codierte Zeichenfolge?

>>> hextext.encode("utf-16-le") 
'H\x00:\x00\\\x00m\x00y\x00f\x00i\x00l\x00e\x00p\x00a\x00t\x00h\x00.\x00m\x00y\x00f\x00i\x00l\x00e\x00e\x00n\x00d\x00i\x00n\x00g\x00'