作者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