鱼C论坛

 找回密码
 立即注册
查看: 674|回复: 2

byte二进制数据处理问题

[复制链接]
发表于 2019-1-3 13:22:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
读取二进制文件,对二进制数据处理,没有依次输出byte的内容,问题:1、是否byte不能使用for语句,2、如果需要对二进制的字节处理有什么好的方式,需要实现对二进制字节转义,如0x0d -->0X40 4D; 0X40 -->0X40 00

>>> data = b'30 31 32'
>>> for each in data:
        if each == b'30':
                print(b'40')
        else:
                print(each)
输出结果:
               
51
48
32
51
49
32
51
50
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-1-3 14:07:36 | 显示全部楼层
1 可以用for
2 请用专门的库,struct库了解一下
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-3 14:45:12 | 显示全部楼层
首先你要理解字符串前面加b是什么意思。(意思是告诉你,python中的bytes不是你想像的那样跟UltraEdit这些工具以16进制30 31 32)
>>> data = '456889'
>>> d2 = data.encode('utf-8')
>>> d2
b'456889'

如果说你这是一串16进制字符串,要处理,那么得编程,写代码:
data = '30 31 32'
data_list = data.split()

  1. for h in data_list:
  2.     if h == '30':
  3.         print('40')
  4.     else:
  5.         print(h)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-1-12 21:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表