作者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
1F:→ jlhg:hex()? 08/11 22:08
2F:→ darkgerm:line 就是 bytes string 不需要转换 08/11 23:35
3F:推 yume190:最近刚好玩过 08/12 22:13
4F:→ yume190:请爱用struct 08/12 22:14
5F:→ yume190:from struct import * 08/12 22:14
6F:→ yume190:listnumber = list(str(12345)) #['1','2'...] 08/12 22:17
7F:→ yume190:for number in listnumber: 08/12 22:17
8F:→ yume190: number=int(number) 08/12 22:18
9F:→ yume190: s1 += pack('B',number) 08/12 22:18