⑴ 如何用python读取图片的16进制码
你可以直接用open('test.bmp','rb') open函数打开,这样得到的是二进制数据,然后你根据图片格式的相应说明对二进制数据进行相应的转换即可,或者使用图像处理库来做也是很方便的,比如opencv等等。
⑵ python读取字符串中间的16进制数字
这个转了十进制又转了十六进制,都是string,而不是数值
print出来,是以string 输出的。
分享一个我以前的
#比如hex.log 里面是E3F2A1
#就要往文件out.bin里写 0xE3 0xF2 0xA1
import string
HEX_file_name = "hex.log"
BIN_file_name = "out.bin"
input_file = open(HEX_file_name,'r')
output_file = open(BIN_file_name,'wb')
for lines in input_file.readlines():
lines = lines.replace(' ','').replace('\n','').upper()
for i in range(0, len(lines), 2):
chars = lines[i:i+2]
output_file.write(chr(int(chars, 16)))
input_file.close()
output_file.close()
核心就是
for i in range(0, len(lines), 2):
chars = lines[i:i+2]
output_file.write(chr(int(chars, 16)))
看懂了就懂了
out.bin可以用ultraedit或者notepad++十六进制查看
⑶ python串口16进制问题
显示没错。。1、2、3、4对应的ascii/unicode码位值分别就是31h,32h,33h,34h
转回字符显示可以
print(chr(0x31))#显示"1"
⑷ python获取串口设备的描述
importwinreg
key=winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE,r"{36FC9E60-C465-11CF-8056-444553540000}")
foriinrange(winreg.QueryInfoKey(key)[0]):
subkey=winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE,"SYSTEM\ControlSet001\Control\Class\{36FC9E60-C465-11CF-8056-444553540000}\"+winreg.EnumKey(key,i))
print(winreg.QueryValueEx(subkey,'DriverDesc'))
winreg.CloseKey(subkey)
winreg.CloseKey(key)
importwinreg
key=winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE,r"")
try:
i=0
while1:
name,value,type=winreg.EnumValue(key,i)
print(repr(name),value)
i+=1
value,type=winreg.QueryValueEx(key,"EnableAutoTray")
exceptFileNotFoundError:
exceptOSError:
以前回答过一个,好像跟你说的意思差不多,都是读取注册表,一个读USB,一个是串口
⑸ 串口发送16进制1234,用python接收的是'\x01\x01\x03\x04'但用python再怎么转换成原来的数据1234呢
假设你接收到的'x01x02x03x04'储存在a变量中,
你想要转换为1234储存在b变量中,那么可以参考进行如下操作:
>>> a='x01x02x03x04'
>>> b=''
>>> for i in s:
b=b + str(ord(i))
>>> b
'1234'
>>> b = int(b) #如果要将b转为数值变量,则使用int()
>>> b。
(5)python16进制读取串口扩展阅读:
十六进制的转换
数学的计算方法
主条目:进制转换
十进制转十六进制
采余数定理分解,例如将487710转成十六进制:
4877÷16=304....13(D)
304÷16=19....0
19÷16=1....3
1÷16=0....1
这样就计到487710=130D16
编程中的函式
Visual Basic
十六进制转换为十进制:十进制(Long型)=CLng("&H" & 十六进制数(String型))
十进制转换为十六进制:十六进制数(String型)=Hex$(十进制)
Javascript
Javascript 能以 toString() 函数来将十进制数字转为其他任意进制格式(String类型)
Python
调用Python内置int()函数把该字串转为数字。
⑹ Python Serial 串口能不能发送16进制的数字
pyserial默认的写入格式是字符串,并不是16进制的。接收到的也是字符串,除非你在接收端设置了默认接受hex格式,就会显示hex。我用过蓝牙串口和Arino开发板的串口,收到的都是字符串。
⑺ python3.5 读取串口中的数据怎么解码
1、安装串口库
2、采用默认通信参数
import serial
t = serial.Serial('com1',9600)
n = t.write('you are my world')print t.portstrprint n
str = t.read(n)print str
3、可以自己设置参数
import timeimport serialser = serial.Serial( #下面这些参数根据情况修改 port='COM1', baudrate=9600, parity=serial.PARITY_ODD, stopbits=serial.STOPBITS_TWO, bytesize=serial.SEVENBITS)data = ''while ser.inWaiting() > 0: data += ser.read(1)if data != '': print data
注意:Python与多个串口通信的时候,要确定端口号。如果有时间的话,可以自己写一个查询所有端口的信息,不想这么麻烦的话,下载个串口助手,自己看端口信息,在py文件中修改serial.Serial()里面的端口号。
⑻ 关于python 构造16进制函数的奇怪问题
>>>defchghex(data):
...hex2ch=lambdax:chr(int(x,16))
...return''.join(map(hex2ch,data.__str__().split()))
...
>>>printrepr(chghex("A1FDF102DF"))
'xa1xfdxf1x02xdf'
>>>
⑼ 串口发送16进制1234,用python接收的是'\x01\x01\x03\x04'但用python再怎么转换成原来的数据1234呢
1、首先要引用Python的第三方库:serial,打开pycharm。