Python3 字节bytes和字符串str转换

本文介绍了Python3中bytes和str两种类型之间的转换方法,包括使用`encode`和`decode`函数进行编码解码操作,以及直接通过字面量创建。详细展示了不同初始化和转换的语法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Python3 bytes和str互转
Python 3.6.5

bytes对象初始化

  • 写法一
>>> bytes_obj = bytes('HELLO!',encoding='utf-8')
>>> type(bytes_obj)
<class 'bytes'>
>>> bytes_obj
b'HELLO\xef\xbc\x81'
  • 写法二
>>> bytes_obj=b'hello!'
>>> type(bytes_obj)
<class 'bytes'>
>>> bytes_obj
b'hello!'
bytes转str

方法一

>>> bytes_obj=b'hello!'
>>> str_obj = str(bytes_obj) # str(bytes_obj,encoding='utf-8')  其他编码加上encoding参数
>>> type(str_obj)
<class 'str'>
>>> str_obj
"b'hello!'"

写法二

>>> bytes_obj=b'hello!'
>>> str_obj = bytes.decode(bytes_obj) # bytes.decode(bytes_obj,encoding='utf-8'),其他编码加上encoding
>>> type(str_obj)
<class 'str'>
>>> str_obj
'hello!'
str转bytes

写法一

>>> str_obj='你好!'
>>> bytes_obj = str.encode(str_obj) #str.encode(str_obj,encoding='utf-8')
>>> type(bytes_obj)
<class 'bytes'>
>>> bytes_obj
b'\xe4\xbd\xa0\xe5\xa5\xbd\xef\xbc\x81'

写法二

>>> str_obj='你好!'
>>> bytes_obj = str_obj.encode()#默认参数encoding='utf-8'
>>> type(bytes_obj)
<class 'bytes'>
>>> bytes_obj
b'\xe4\xbd\xa0\xe5\xa5\xbd\xef\xbc\x81'

————————————————
版权声明:本文为CSDN博主「我爱泡澡堂」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lixinging/article/details/103197166

### MCP协议在网络抓包及解析中的应用 MCP(Management Communication Protocol)是一种用于管理监控网络设备通信的协议。它通常被用来实现对网络流量的捕获、传输以及后续的数据处理功能。以下是关于如何利用MCP协议进行网络抓包及其解析的技术说明。 #### 一、MCP协议概述 MCP协议主要用于管理分布式系统的数据流控制状态同步,在实际操作中可以作为网络抓包的一种手段来获取特定环境下的网络交互信息[^1]。该协议支持多种类型的报文结构设计,能够满足不同场景下对于性能优化的需求。 #### 二、基于MCP协议的网络抓包过程描述 当采用MCP协议实施网络抓包时,整个工作流程大致如下: - **任务提交阶段**: 用户借助拨测抓包工具所提供的Web配置界面完成初始设置并发起任务请求。 - **网络信息查询阶段**: 拨测工具随后向Neutron组件发出调用指令以检索当前活动网络的相关属性详情。 - **存储与查询环节**: 所得数据会被分别存入Redis缓存数据库以及GaussDB关系型数据库之中以便快速访问或长期保存。 - **控制器调度部分**: Controller接收到由前端传递过来的任务细节后,经内部逻辑判断再通过远程过程调用(RPC)机制通知目标节点上的Agent模块具体行动指南。 - **执行反馈链路构建**: Agent依据指示完成指定动作并将成果回传至HKEAnalyzer实例处接受进一步剖析;后者定位潜在异常状况后再逐级汇报直至最终呈现在用户的可视化界面上显示出来。 #### 三、解析技术要点 针对上述过程中产生的原始数据包内容展开深入解读至关重要: 1. **字段提取** 利用正则表达式或其他专用库函数准确识别各层头部定义的关键组成部分,例如源地址(Source Address),目的地址(Destination Address), 协议编号(Protocol Number)等等。 2. **时间戳标记** 对每一条记录附加精确的时间标签有助于后期追踪事件发生顺序或者计算延迟指标等统计量度值。 3. **错误检测算法集成** 结合CRC校验码验证等方式确保所接收信号的真实性不受外界干扰因素影响而失真变形。 4. **日志归档策略制定** 定期清理过期无价值的历史档案同时保留重要时段内的详尽资料供审计用途考虑。 ```python import re def parse_mcp_packet(packet_data): source_address_pattern = r&#39;SourceAddress:(\d+\.\d+\.\d+\.\d+)&#39; destination_address_pattern = r&#39;DestAddress:(\d+\.\d+\.\d+\.\d+)&#39; src_match = re.search(source_address_pattern, packet_data) dest_match = re.search(destination_address_pattern, packet_data) if src_match and dest_match: src_addr = src_match.group(1) dest_addr = dest_match.group(1) return { &#39;source&#39;: src_addr, &#39;destination&#39;: dest_addr } packet_example = "SourceAddress:192.168.0.1 DestAddress:192.168.0.2" parsed_info = parse_mcp_packet(packet_example) print(parsed_info) ``` 以上脚本展示了基本的模式匹配方法应用于简单的IP地址抽取案例当中。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值