作者elvisteal (TEAL)
看板Python
標題[問題] String to Byte
時間Mon Sep 13 17:35:23 2010
小弟最近在試著把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
1F:推 ya790206:第二個問題''.join(['aa','bb','cc']) 09/13 17:58
感謝^^會了~~但第一個問題是重點><"
2F:推 ya790206:'aabb'.decode('hex_codec') 你要的嗎? 我前面沒b 09/13 19:01
3F:→ elvisteal:似乎不是><"~而且PYTHON3.0好像不能用? 09/13 19:12
4F:→ ya790206:那是2.X的寫法,3.X要在看看。 09/13 19:17
5F:推 ya790206:binascii.b2a_hex('aabb') 記得import binascii 09/13 19:37
我使用了binascii.b2a_hex('aabb')
它說'str' does not support the buffer interface(字串不包含這功能!!!
6F:→ ya790206:binascii.b2a_hex('aabb'.encode('ascii')) 如何? 09/13 20:13
這樣會變成b'61616262'
7F:→ ya790206:我是用python 3.01去測的(我用portable python) 09/13 20:13
我最後試成功了
用binascii.a2b_hex(str.encode('aabbcc')))
印出b'\xaa\xbb\xcc'
感謝你的幫忙和指引~~不然我想我也弄不出來QAQ~~~
8F:推 ya790206:我發現一件事情了,我打在推文和我測試的程式碼不一樣 09/13 20:25
9F:→ ya790206:我推文ba打相反了,難怪你試不出來XD 09/13 20:26
慘了~更大的問題出來了
我若輸入的是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)
10F:→ ya790206:因為ascii碼70是p,71是q,不可見字元才會變\xaa 09/13 22:03
11F:→ elvisteal:所以是沒關係的囉?~好像的樣子(感謝 09/14 08:32
12F:推 apua:請問字串的引號前加上b是什麼意思? 09/14 19:56
13F:→ elvisteal:前面加上b代表是bytes 型態的字串 09/14 20:10
14F:推 apua:可以舉個例子嗎?我還是不懂bytes型態而且找不到清楚的說明 09/14 20:45
15F:→ ya790206:我沒記錯的話bytes是3.x才有的型態 09/14 22:54
16F:→ ya790206:str.encode()->bytes ,bytes.decode()->str 09/14 22:54