作者blackspace98 (~我愛夏天~)
看板Python
標題[問題] 16進制轉換問題
時間Sun Aug 11 20:26:28 2013
#有一個指令,如果我要直接送出,寫下面的方法可以正確送出與得到資料
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