字符串转换通过在特定计数后插入另一个字符串或字符

时间:2018-02-16 13:04:55

标签: python python-2.7

以十六进制格式发送串口数据我在第一行有字符串格式的数据,在第二行转换为十六进制字符串,但在发送python - serial时,它应该在第三行格式化。我想在最初和每2次计数后插入'\x'。请帮助相同的

1st line - string ='s00123'
2nd line - "01733030313233"
3rd lline - `x01\x73\x30\x30\x31\x32\x33`

1 个答案:

答案 0 :(得分:0)

有几种方法可以解决这个问题。我能想到的最干净的事情就是创建一个新的list并将每两个字符添加到list,然后join将它们与添加的\x一起添加1}}。使用binascii模块可能有更好的方法,但我现在似乎无法想到。

hexString = 'ab1234'
hexArray = list()
for i in range(0, len(hexString), 2):
    val = '\x' + hexString[i:i+2]
    hexArray.append(val)
finalResult = ''.join(hexArray)

当然这段代码不会检查无效输入,因此您必须在其中编写一些错误检查。