如何在python中增加字符串格式的十六进制值?

如何在python中增加字符串格式的十六进制值?,python,hex,Python,Hex,我需要将十六进制值(CMD=“\xA0\x00\x00”)增加32,以便从python脚本写入i2c eeprom。我不知道如何在循环中增加这个字符串 我试着这样实现它 increment =20 CMD = "\xA0\x00\x00" for i in range(0,N): command=CMD+str(increment) increment+=20 #Code to write to the value goes here 我以为它会按顺序递增 "\xA

我需要将十六进制值(CMD=“\xA0\x00\x00”)增加32,以便从python脚本写入i2c eeprom。我不知道如何在循环中增加这个字符串

我试着这样实现它

increment =20
CMD = "\xA0\x00\x00" 

for i in range(0,N):
    command=CMD+str(increment)
    increment+=20
    #Code to write to the value goes here
我以为它会按顺序递增

"\xA0\x00\x00"
"\xA0\x00\x0020"
"\xA0\x00\x0040"
"\xA0\x00\x0060"   
#onwards
但它不起作用。 任何帮助都将不胜感激

编辑:

这就是我尝试向命令添加str(20)时的输出

>>> WCMD = "\xA0\x00\x00"
>>> WCMD=WCMD+str(20)
>>> WCMD
'\xa0\x00\x0020'
>>> 
>>> print(WCMD)
�20
>>> WCMD[0]
'\xa0'
>>> WCMD[1]
'\x00'
>>> WCMD[3]
'2'
>>> WCMD[4]
'0'
>>> WCMD
'\xa0\x00\x0020'
>>> 

到底是什么不起作用?你得到了什么输出?还是你有错误?@JGut,我编辑了这个问题以包含一些输出。当我尝试编写“\xa0\x00\x00”或“\xa0\x00\x20”或“\xa0\x00\x40”时,代码运行良好,但编写“\xa0\x00\x00”+str(20)”不会给出错误,但也不起作用。我不知道如何正确地增加值如果您试图增加字符串的最后一个字符,我认为最干净的方法是使用int数组,更改其内容,然后needed@yeputons,将int转换为字符串并将其附加到原始字符串似乎不起作用。”x00'被视为字符串中的单个字符。但是在向字符串中添加一个整数(例如20)时,2和0被视为单独的字符。所有这些
x00
都是在Python读取源文件时处理的,它们在运行时不存在,因此
“\x00”+“01”
“\x0001”
不同。我建议使用数组
[0,0,0]
将所需代码存储为
int
s,然后修改数组(修改为
[0,0,32]
),然后在必要时将数组转换为字符串。这有意义吗?到底是什么不起作用?你得到了什么输出?还是你有错误?@JGut,我编辑了这个问题以包含一些输出。当我尝试编写“\xa0\x00\x00”或“\xa0\x00\x20”或“\xa0\x00\x40”时,代码运行良好,但编写“\xa0\x00\x00”+str(20)”不会给出错误,但也不起作用。我不知道如何正确地增加值如果您试图增加字符串的最后一个字符,我认为最干净的方法是使用int数组,更改其内容,然后needed@yeputons,将int转换为字符串并将其附加到原始字符串似乎不起作用。”x00'被视为字符串中的单个字符。但是在向字符串中添加一个整数(例如20)时,2和0被视为单独的字符。所有这些
x00
都是在Python读取源文件时处理的,它们在运行时不存在,因此
“\x00”+“01”
“\x0001”
不同。我建议使用数组
[0,0,0]
将所需代码存储为
int
s,然后修改数组(修改为
[0,0,32]
),然后在必要时将数组转换为字符串。这有意义吗?