Python bytes类型及用法
在Python中,bytes类型是一种不可变的字节序列,用于存储原始的二进制数据。bytes对象通常用于处理文件、网络通信和其他需要处理原始字节数据的场景。
以下是bytes类型的一些基本用法和特性:
1. 创建bytes对象
可以通过多种方式创建bytes对象:
通过字面量:使用前缀b或B。
b_data = b'Hello, World!'
通过bytes构造函数:
python
b_data = bytes([72, 101, 108, 108, 111]) # 对应于 'Hello'
通过字符串的encode方法:
s = 'Hello, World!'
b_data = s.encode('utf-8')
2. 访问和修改bytes对象
bytes对象是不可变的,因此不能修改其内容。不过,可以访问其元素:
访问元素:
b_data = b'Hello'
print(b_data[0]) # 输出 72,对应于字符 'H' 的 ASCII 码
切片:
b_data = b'Hello, World!'
print(b_data[0:5]) # 输出 b'Hello'
3. 常用的方法和属性
len():返回字节序列的长度。
b_data = b'Hello'
print(len(b_data)) # 输出 5
decode():将bytes对象解码为字符串。
b_data = b'Hello, World!'
s = b_data.decode('utf-8')
print(s) # 输出 'Hello, World!'
hex():返回字节序列的十六进制表示。
b_data = b'\x48\x65\x6c\x6c\x6f' # 'Hello'
print(b_data.hex()) # 输出 '48656c6c6f'
find():查找子字节序列的位置。
b_data = b'Hello, World!'
index = b_data.find(b'World')
print(index) # 输出 7
replace():替换子字节序列(返回新对象,因为bytes是不可变的)。
b_data = b'Hello, World!'
new_b_data = b_data.replace(b'World', b'Python')
print(new_b_data) # 输出 b'Hello, Python!'
4. 示例应用
读取和写入二进制文件:
# 写入二进制文件
with open('example.bin', 'wb') as f:f.write(b'Hello, World!')# 读取二进制文件
with open('example.bin', 'rb') as f:b_data = f.read()print(b_data) # 输出 b'Hello, World!'
网络编程中的数据传输:
import socket# 创建一个 TCP/IP 套接字
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 连接到服务器
sock.connect(('localhost', 12345))# 发送数据
sock.sendall(b'Hello, Server!')# 接收数据
data = sock.recv(1024)
print(data) # 假设服务器返回 'Hello, Client!'# 关闭套接字
sock.close()
通过理解bytes类型及其用法,你可以更有效地处理Python中的二进制数据。
相关文章:
Python bytes类型及用法
在Python中,bytes类型是一种不可变的字节序列,用于存储原始的二进制数据。bytes对象通常用于处理文件、网络通信和其他需要处理原始字节数据的场景。 以下是bytes类型的一些基本用法和特性: 1. 创建bytes对象 可以通过多种方式创建bytes对…...

阅读《基于蒙特卡洛法的破片打击无人机易损性分析》_笔记
目录 基本信息 1 引言 1.1 主要研究内容 1.2 研究必要性(为什么要研究) 1.3 该领域研究现状(别人做了什么/怎么做的) 2 主要研究过程(我们做了什么) 2.1 建立目标仿真模型 2.2 确定毁伤依据 2.3 无…...
【vim】vim怎么把某一列内容复制到另一列
1. vim 怎么把某一列内容复制到另一列 移动光标到你想复制的列的第一个字符上。按下 ctrlv 进入选择模式。按下方向键选择多行。按下 h 或 j 或 k 或 l,选择整列。按下 y 复制所选择的列。移动光标到你想粘贴内容的列的第一个字符上。按下 p 粘贴内容。...
IP划分(笔记)
IPv4 32位4字节 IPv6 128位16字节 IPv4转IPv6 前10字节全0,2字节全1,再加ipv4的4个字节 IPv4划分笔记(有类域): A类:首字节必为0b0xxxxxxx 0.0.0.0/8-127.255.255.255/8 实际范围:1.0.0.1/8-126.25…...

【ChatGPT大模型开发调用】如何获得 OpenAl API Key?
如何获取 OpenAI API Key 获取 OpenAI API Key 主要有以下三种途径: OpenAI 官方平台 (推荐): 开发者用户可以直接在 OpenAI 官方网站 (platform.openai.com) 注册并申请 API Key。 通常,您可以在账户设置或开发者平台的相关页面找到申请入口。 Azure…...
人证合一开启安全认证新时代、C#人证合一接口集成、人脸识别
在数字化转型加速推进的今天,确保用户身份的真实性和唯一性成为了各行各业关注的重点。从金融交易到在线教育,从远程办公到智慧医疗,如何高效准确地验证“你是你”变得至关重要。正是在这种背景下,翔云“人证合一”接口应运而生&a…...
EBS 中 Oracle Payables (AP) 模块的相关集成
Oracle E-Business Suite (EBS) 中的 Oracle Payables (AP) 模块是一个全面的应付账款管理系统,它不仅提供了丰富的功能来管理与供应商的财务交易,还通过与其他模块的紧密集成,实现了企业内部各个业务流程的无缝衔接。以下是 Oracle Payables…...
Flask项目入门—会话技术Cookie和Session
Session和Cookie都是用于跟踪用户会话的技术、它们可以存储用户信息,以便在用户与网站进行交互时提供个性化的体验。然而,这两者在存储位置、使用方式、安全性等方面存在显著的差异。 工作原理/流程 Cookie 1、用户第一次访问时候服务器生成 Cookie&a…...
通达OA down存在信息泄露漏洞
免责声明: 本文旨在提供有关特定漏洞的深入信息,帮助用户充分了解潜在的安全风险。发布此信息的目的在于提升网络安全意识和推动技术进步,未经授权访问系统、网络或应用程序,可能会导致法律责任或严重后果。因此,作者不对读者基于本文内容所采取的任何行为承担责任。读者在…...

Python中的简单爬虫
文章目录 一. 基于FastAPI之Web站点开发1. 基于FastAPI搭建Web服务器2. Web服务器和浏览器的通讯流程3. 浏览器访问Web服务器的通讯流程4. 加载图片资源代码 二. 基于Web请求的FastAPI通用配置1. 目前Web服务器存在问题2. 基于Web请求的FastAPI通用配置 三. Python爬虫介绍1. 什…...

Scala入门基础(20)数据集复习拓展
一.Stack栈二.Queue 队列 一.Stack栈 Stack:栈,特殊的结构。它对元素的操作是在头部:栈顶 先进后出的队列。pop表示取出,push表示在栈中添加元素 二.Queue 队列 Queue 队列;先进先出.enqueue入队,dequeue出队。...

leetcode 二叉树的最大深度
104. 二叉树的最大深度 已解答 简单 相关标签 相关企业 给定一个二叉树 root ,返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1: 输入:root [3,9,20,null,null,15,7] 输出:3…...

elasticsearch集群部署及加密通讯
原文地址:elasticsearch集群部署及加密通讯 – 无敌牛 欢迎参观我的个人博客:无敌牛 – 技术/著作/典籍/分享等 第零步,准备 给各台设备配置虚拟主机名,这样集群不依赖IP,即使IP变动,改动也更方便。参考…...

ML 系列:第 32节 — 机器学习中的统计简介
文章目录 一、说明二、统计概述三、描述性统计与推断性统计3.1 描述统计学3.2 推论统计 四、描述性统计中的均值、中位数和众数 一、说明 机器学习中的统计 随着我们深入研究机器学习领域,了解统计学在该领域的作用至关重要。统计学是机器学习的支柱,它…...

CatVton升级版?CatVton-Flux:AI虚拟试衣方案新选择。
之前的文章中已经和大家介绍过虚拟试衣方案CatVton,感兴趣的小伙伴可以点击下面链接阅读~ 中山大学与Pixocial联手提出CatVTON:轻量化架构与高效训练,助力虚拟试衣技术落地应用! 今天给大家介绍的是CatVton-FLUX,它是…...

JavaEE---计算机是如何工作的?
1.了解冯诺依曼体系结构 2.CPU的核心概念,CPU的两个重要指标(核心数和频率) 3.CPU执行指令的流程(指令表,一条一条指令,取指令,解析指令,执行指令) 4.操作系统核心概念(管理硬件,给软件提供稳定的运行环境) 5.进程的概念(运行起来的程序和可执行文件的区别) 6.进程的管理(…...

十、Spring Boot集成Spring Security之HTTP请求授权
文章目录 往期回顾:Spring Boot集成Spring Security专栏及各章节快捷入口前言一、HTTP请求授权工作原理二、HTTP请求授权配置1、添加用户权限2、配置ExceptionTranslationFilter自定义异常处理器3、HTTP请求授权配置 三、测试接口1、测试类2、测试 四、总结 往期回顾…...

C#基础控制台程序
11.有一个54的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号。 12.从键盘输入一行字符,统计其中有多少个单词,单词之间用空格分隔开。 13.输入一个数,判断它是奇数还是偶数,如果…...
【网络安全】CSRF
一、什么是CSRF CSRF(Cross-Site Request Forgery)是一种web应用程序安全漏洞,它利用了用户在已登录的状态下的信任,通过欺骗用户发送未经授权的请求来执行恶意操作。这种攻击的危害性取决于受害者在目标网站上的权限。 二、CSR…...

网络原理(一)—— http
什么是 http http 是一个应用层协议,全称为“超文本传输协议”。 http 自 1991 年诞生,目前已经发展为最主流使用的一种应用层协议。 HTTP 往往基于传输层的 TCP 协议实现的,例如 http1.0,http1.0,http2.0 http3 是…...
[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?
🧠 智能合约中的数据是如何在区块链中保持一致的? 为什么所有区块链节点都能得出相同结果?合约调用这么复杂,状态真能保持一致吗?本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里…...

label-studio的使用教程(导入本地路径)
文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...
python如何将word的doc另存为docx
将 DOCX 文件另存为 DOCX 格式(Python 实现) 在 Python 中,你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是,.doc 是旧的 Word 格式,而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...

c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...
Python 包管理器 uv 介绍
Python 包管理器 uv 全面介绍 uv 是由 Astral(热门工具 Ruff 的开发者)推出的下一代高性能 Python 包管理器和构建工具,用 Rust 编写。它旨在解决传统工具(如 pip、virtualenv、pip-tools)的性能瓶颈,同时…...

基于TurtleBot3在Gazebo地图实现机器人远程控制
1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...

Netty从入门到进阶(二)
二、Netty入门 1. 概述 1.1 Netty是什么 Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. Netty是一个异步的、基于事件驱动的网络应用框架,用于…...
NPOI操作EXCEL文件 ——CAD C# 二次开发
缺点:dll.版本容易加载错误。CAD加载插件时,没有加载所有类库。插件运行过程中用到某个类库,会从CAD的安装目录找,找不到就报错了。 【方案2】让CAD在加载过程中把类库加载到内存 【方案3】是发现缺少了哪个库,就用插件程序加载进…...
django blank 与 null的区别
1.blank blank控制表单验证时是否允许字段为空 2.null null控制数据库层面是否为空 但是,要注意以下几点: Django的表单验证与null无关:null参数控制的是数据库层面字段是否可以为NULL,而blank参数控制的是Django表单验证时字…...
学习一下用鸿蒙DevEco Studio HarmonyOS5实现百度地图
在鸿蒙(HarmonyOS5)中集成百度地图,可以通过以下步骤和技术方案实现。结合鸿蒙的分布式能力和百度地图的API,可以构建跨设备的定位、导航和地图展示功能。 1. 鸿蒙环境准备 开发工具:下载安装 De…...