将不同的字节格式保存为Python中的可读文本

时间:2018-05-14 21:39:40

标签: python casting escaping hex

我试图将字符串和十六进制值的列表(后者以不同的表示形式)保存为Python中的文件中的人类可读字符串。

Sub RefreshCells()

Dim r As Range, rr As Range
Set rr = Selection
For Each r In rr
r.Select
Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
   Application.CutCopyMode = False

    Application.SendKeys "{F2}"
    Application.SendKeys "{ENTER}"
    Application.SendKeys "+{ENTER}"
    DoEvents
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
   Application.CutCopyMode = False

    Application.SendKeys "{ENTER}"

    DoEvents

Next



End Sub

将其保存到文件中

['TX', '\x12', '0x2', '0x15', '0xe6', '0x86', '0xce', '\x13']

如您所见,利用转义序列的所有十六进制表示都不会作为其值的可读版本存储,而是作为特殊字符存储。我的目标是能够在它们出现时识别这些值(我尝试使用newString中的“//”无效),然后将它们转换为十六进制表示“0x ##”,以便它们可以存储稍后由一个人阅读。

1 个答案:

答案 0 :(得分:0)

所以我的问题的答案最终是为了保存值作为我正在寻找的十六进制值的表示我最终需要使用以下代码:

    def log(self, mode, data):
    for i,d in enumerate(data):
        if not isinstance(d,str):
            data[i] = hex(d)
        elif self.is_hex(d):
            data[i] = binascii.hexlify(d)

这使得我希望以可读取的格式存储数据。感谢Ignacio Vazquez-Abrams的帮助,以及以下Dev Dungeon : Working with Binary Data的所有优秀信息。