[問題] String to Byte

看板Python作者 (TEAL)時間13年前 (2010/09/13 17:35), 編輯推噓6(6010)
留言16則, 3人參與, 最新討論串1/1
小弟最近在試著把aa bb cc 變成b'\xaa\xbb\xcc' 若code是這樣 CMD = input() 但試了很多種方式 若直接 str.encode(CMD) 則是 b'aa bb cc' 但要如何把那aa變成b'\xaa'啊? 另一問 若透過string.splite('aa bb cc' ," ")將aa bb cc變成 [['aa','bb','cc']] 要怎麼變成一個 aabbcc -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.64.238.163

09/13 17:58, , 1F
第二個問題''.join(['aa','bb','cc'])
09/13 17:58, 1F
感謝^^會了~~但第一個問題是重點><"

09/13 19:01, , 2F
'aabb'.decode('hex_codec') 你要的嗎? 我前面沒b
09/13 19:01, 2F

09/13 19:12, , 3F
似乎不是><"~而且PYTHON3.0好像不能用?
09/13 19:12, 3F

09/13 19:17, , 4F
那是2.X的寫法,3.X要在看看。
09/13 19:17, 4F

09/13 19:37, , 5F
binascii.b2a_hex('aabb') 記得import binascii
09/13 19:37, 5F
我使用了binascii.b2a_hex('aabb') 它說'str' does not support the buffer interface(字串不包含這功能!!!

09/13 20:13, , 6F
binascii.b2a_hex('aabb'.encode('ascii')) 如何?
09/13 20:13, 6F
這樣會變成b'61616262'

09/13 20:13, , 7F
我是用python 3.01去測的(我用portable python)
09/13 20:13, 7F
我最後試成功了 用binascii.a2b_hex(str.encode('aabbcc'))) 印出b'\xaa\xbb\xcc' 感謝你的幫忙和指引~~不然我想我也弄不出來QAQ~~~

09/13 20:25, , 8F
我發現一件事情了,我打在推文和我測試的程式碼不一樣
09/13 20:25, 8F

09/13 20:26, , 9F
我推文ba打相反了,難怪你試不出來XD
09/13 20:26, 9F
慘了~更大的問題出來了 我若輸入的是70~79 輸出不為\x70~\x79 會變成p q r s t u v w x y.... 好像從...20~79都有問題..... orz ※ 編輯: elvisteal 來自: 210.64.238.163 (09/13 20:40)

09/13 22:03, , 10F
因為ascii碼70是p,71是q,不可見字元才會變\xaa
09/13 22:03, 10F

09/14 08:32, , 11F
所以是沒關係的囉?~好像的樣子(感謝
09/14 08:32, 11F

09/14 19:56, , 12F
請問字串的引號前加上b是什麼意思?
09/14 19:56, 12F

09/14 20:10, , 13F
前面加上b代表是bytes 型態的字串
09/14 20:10, 13F

09/14 20:45, , 14F
可以舉個例子嗎?我還是不懂bytes型態而且找不到清楚的說明
09/14 20:45, 14F

09/14 22:54, , 15F
我沒記錯的話bytes是3.x才有的型態
09/14 22:54, 15F

09/14 22:54, , 16F
str.encode()->bytes ,bytes.decode()->str
09/14 22:54, 16F
文章代碼(AID): #1CZV1WEf (Python)