⑴ 如何用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。