看板 Python 關於我們 聯絡資訊
#有一個指令,如果我要直接送出,寫下面的方法可以正確送出與得到資料 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
jlhg:hex()? 08/11 22:08
darkgerm:line 就是 bytes string 不需要轉換 08/11 23:35
yume190:最近剛好玩過 08/12 22:13
yume190:請愛用struct 08/12 22:14
yume190:from struct import * 08/12 22:14
yume190:listnumber = list(str(12345)) #['1','2'...] 08/12 22:17
yume190:for number in listnumber: 08/12 22:17
yume190: number=int(number) 08/12 22:18
yume190: s1 += pack('B',number) 08/12 22:18