[問題] 16進制轉換問題

看板Python作者 (~我愛夏天~)時間12年前 (2013/08/11 20:26), 編輯推噓1(108)
留言9則, 3人參與, 最新討論串1/2 (看更多)
#有一個指令,如果我要直接送出,寫下面的方法可以正確送出與得到資料 s1='\x01\x05\x31\x32\x33\x34\x35\x03' #\x01 \x05 \x03 為控制字元 print 's1='+ s1 #s1=<控制字元><控制字元>12345<控制字元> print len(s1) #8 ================================ #現在換成從外部依序讀取一排字串進來 #file.txt的內容(筆數不固定,目前有兩筆) 12345 56789 #假如我欲從檔案file.txt裏面 #要如何把那兩筆字串各轉成16進制並且前後再加上16進制的控制字元呢? #就是想要轉換成文章一開始說的用法 f = open('file.txt') for line in f.readlines(): s=? f.close() #然後轉換成類似下面這樣 send_s = '\x01\x05' + s + '\x03' print len(send_s) #也要等於8 不知道我這樣的敘述可不可以 請教各位了~謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.80.28.82

08/11 22:08, , 1F
hex()?
08/11 22:08, 1F

08/11 23:35, , 2F
line 就是 bytes string 不需要轉換
08/11 23:35, 2F

08/12 22:13, , 3F
最近剛好玩過
08/12 22:13, 3F

08/12 22:14, , 4F
請愛用struct
08/12 22:14, 4F

08/12 22:14, , 5F
from struct import *
08/12 22:14, 5F

08/12 22:17, , 6F
listnumber = list(str(12345)) #['1','2'...]
08/12 22:17, 6F

08/12 22:17, , 7F
for number in listnumber:
08/12 22:17, 7F

08/12 22:18, , 8F
number=int(number)
08/12 22:18, 8F

08/12 22:18, , 9F
s1 += pack('B',number)
08/12 22:18, 9F
文章代碼(AID): #1I1uBsDL (Python)
文章代碼(AID): #1I1uBsDL (Python)