百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

python散装笔记——58: base64 模块

liuian 2025-03-14 18:45 13 浏览

Parameter

Description

base64.b64encode(s, altchars=None)

s

类似字节的对象

altchars

altchars一个长度为 2+ 的类字节对象,用于在创建 Base64 字母表时替换 “+”和“=”字符。额外字符将被忽略。

base64.b64decode(s, altchars=None, validate=False)

s

类似字节的对象

altchars

长度为 2+ 的类字节对象,用于在创建 Base64 字母表时替换 “+”和“=”字符。额外字符将被忽略。

validate

如果 validate 为 True,则在进行填充检查前不会丢弃不在正常 Base64 字母表或替代字母表中的字符

base64.standard_b64encode(s)

s

类似字节的对象

base64.standard_b64decode(s)

s

类似字节的对象

base64.urlsafe_b64encode(s)

s

类似字节的对象

base64.urlsafe_b64decode(s)

s

类似字节的对象

b32encode(s)

s

类似字节的对象

b32decode(s)

s

类似字节的对象

base64.b16encode(s)

s

类似字节的对象

base64.b16decode(s)

s

类似字节的对象

base64.a85encode(b, foldspaces=False, wrapcol=0, pad=False, adobe=False)

b

类似字节的对象

foldspaces

如果 foldspacesTrue,将使用字符 y 代替 4 个连续空格。

wrapcol

换行符前的字符数(0 表示没有)

pad

如果 pad 为 True,则在编码前将字节填充为 4 的倍数

adobe

如果 adobe 为 "True",则编码序列将使用与 Adobe 产品相同的<~~>

base64.a85decode(b, foldspaces=False, adobe=False, ignorechars=b'\t\n\r\v')

b

类似字节的对象

foldspaces

如果 foldspacesTrue,将使用字符 y 代替 4 个连续空格。

adobe

如果 adobeTrue,则编码序列将使用与 Adobe 产品相同的<~~>

ignorechars

在编码过程中忽略的类似字节的字符对象

base64.b85encode(b, pad=False)

b

类似字节的对象

pad

如果 pad 为 True,则在编码前将字节填充为 4 的倍数

base64.b85decode(b)

b

类似字节的对象

base 64 编码是使用弧度 64 将二进制编码为 ASCII 字符串格式的通用方案。base64 模块是标准库的一部分,这意味着它与 Python 一起安装。了解字节和字符串对本主题至关重要,可以在此处复习。本主题将解释如何使用 base64 模块的各种功能和数基。

1: 编码和解码 Base64

要在脚本中包含 base64 模块,必须先导入该模块:

import base64

base64 编码和解码函数都需要一个 bytes-like object。要将字符串转换成字节,我们必须使用 Python 内置的编码函数对其进行编码。最常用的是 UTF-8 编码,但是这些标准编码的完整列表(包括使用不同字符的语言)可以在 Python 官方文档 链接这里 中找到。下面是将字符串编码为字节的示例:

s = "Hello World!"
b = s.encode("UTF-8")

最后一行的输出结果是

b'Hello World!'

b 前缀用于表示值是字节对象。

要对这些字节进行 Base64 编码,我们需要使用 base64.b64encode() 函数:

import base64
s = "Hello World!"
b = s.encode("UTF-8")
e = base64.b64encode(b)
print(e)

该代码的输出结果如下

b'SGVsbG8gV29ybGQh'

仍在字节对象中。要从这些字节中获取字符串,我们可以使用 Python 的 decode() 方法,并使用 UTF-8 编码:

import base64
s = "Hello World!"
b = s.encode("UTF-8")
e = base64.b64encode(b)
s1 = e.decode("UTF-8")
print(s1)

输出结果将是

SGVsbG8gV29ybGQh

如果我们想对字符串进行编码然后解码,可以使用 base64.b64decode() 方法:

import base64
# Creating a string
s = "Hello World!"
# Encoding the string into bytes
b = s.encode("UTF-8")
# Base64 Encode the bytes
e = base64.b64encode(b)
# Decoding the Base64 bytes to string
s1 = e.decode("UTF-8")
# Printing Base64 encoded string
print("Base64 Encoded:", s1)
# Encoding the Base64 encoded string into bytes
b1 = s1.encode("UTF-8")
# Decoding the Base64 bytes
d = base64.b64decode(b1)
# Decoding the bytes to string
s2 = d.decode("UTF-8")
print(s2)

如您所料,输出将是原始字符串:

Base64 Encoded: SGVsbG8gV29ybGQh
Hello World!

2: 编码和解码 Base32

base64 模块还包括 Base32 的编码和解码函数。这些函数与 Base64 函数非常相似:

import base64

# Creating a string
s = "Hello World!"
# Encoding the string into bytes
b = s.encode("UTF-8")
# Base32 Encode the bytes
e = base64.b32encode(b)
# Decoding the Base32 bytes to string
s1 = e.decode("UTF-8")
# Printing Base32 encoded string
print("Base32 Encoded:", s1)
# Encoding the Base32 encoded string into bytes
b1 = s1.encode("UTF-8")
# Decoding the Base32 bytes
d = base64.b32decode(b1)
# Decoding the bytes to string
s2 = d.decode("UTF-8")
print(s2)

这将产生以下输出结果:

Base32 Encoded: JBSWY3DPEBLW64TMMQQQ====
Hello World!

3: 编码和解码 Base16

base64 “模块还包括 ”Base16 "的编码和解码函数。Base 16 "通常被称为十六进制。这些函数与 Base64 和 Base32 函数非常相似:

import base64
# Creating a string
s = "Hello World!"
# Encoding the string into bytes
b = s.encode("UTF-8")
# Base16 Encode the bytes
e = base64.b16encode(b)
# Decoding the Base16 bytes to string
s1 = e.decode("UTF-8")
# Printing Base16 encoded string
print("Base16 Encoded:", s1)
# Encoding the Base16 encoded string into bytes
b1 = s1.encode("UTF-8")
# Decoding the Base16 bytes
d = base64.b16decode(b1)
# Decoding the bytes to string
s2 = d.decode("UTF-8")
print(s2)

输出结果如下

Base16 Encoded: 48656C6C6F20576F726C6421
Hello World!

4: 编码和解码 ASCII85

Adobe 创建了自己的编码,称为 ASCII85,与 “Base85 ”相似,但也有不同之处。Adobe PDF 文件中经常使用这种编码。这些函数已在 Python 3.4 版本中发布。否则,函数 base64.a85encode()base64.a85encode() 与前一个函数类似:

import base64
# Creating a string
s = "Hello World!"
# Encoding the string into bytes
b = s.encode("UTF-8")
# ASCII85 Encode the bytes
e = base64.a85encode(b)
# Decoding the ASCII85 bytes to string
s1 = e.decode("UTF-8")
# Printing ASCII85 encoded string
print("ASCII85 Encoded:", s1)
# Encoding the ASCII85 encoded string into bytes
b1 = s1.encode("UTF-8")
# Decoding the ASCII85 bytes
d = base64.a85decode(b1)
# Decoding the bytes to string
s2 = d.decode("UTF-8")
print(s2)

输出结果如下:

ASCII85 Encoded: 87cURD]i,"Ebo80
Hello World!

5: 编码和解码 Base85

Just like the Base64, Base32, and Base16 functions, the Base85 encoding and decoding functions are base64.b85encode() and base64.b85decode():

import base64

# Creating a string
s = "Hello World!"
# Encoding the string into bytes
b = s.encode("UTF-8")
# Base85 Encode the bytes
e = base64.b85encode(b)
# Decoding the Base85 bytes to string
s1 = e.decode("UTF-8")
# Printing Base85 encoded string
print("Base85 Encoded:", s1)
# Encoding the Base85 encoded string into bytes
b1 = s1.encode("UTF-8")
# Decoding the Base85 bytes
d = base64.b85decode(b1)
# Decoding the bytes to string
s2 = d.decode("UTF-8")
print(s2)

其输出结果如下:

Base85 Encoded: NM&qnZy;B1a%^NF
Hello World!

相关推荐

C# - StreamWriter与StreamReader 读写文件 101

读写文本文件的方式:1)File静态类的File.ReadAllLines();与File.WriteAllLines();方法进行读写2)FileStream实例类的对象fs.Read();与fs....

第5天:文件操作——与真实世界连接

程序,不只是屏幕上跑,真正有用的程序,能处理文件。今天学习最基础的文件读写:#写入文件withopen('hello.txt','w',encoding=&#...

C语言数据输出和输入介绍

在C语言中,数据的输出和输入是程序与用户或外部环境进行交互的重要方式之一。通过数据的输出,程序可以向用户展示信息或结果;通过数据的输入,程序可以获取用户提供的数据或参数。本文将深入介绍C语言中数据输出...

Python 中Print() 函数的秘密!你知道吗

print()函数通常是初学者遇到的第一个Python函数。它是一个基本工具,是进入编程世界的初始门户。它允许开发人员在程序执行期间展示信息、变量和消息。然而,尽管print()函数无处不...

解决U盘exe病毒,exe病毒查杀

U盘exe病毒难以清除,即使被杀毒软件删除也会复活,相当顽固。我曾深受其害,经过多次尝试,终于找到解决办法。若此方法对您有用,请记得点个赞支持。1、U盘中毒后,根目录下的文件夹会变成隐藏状态,无法直...

利用python数据分析,获取双色球历史中奖信息!(内含详细代码)

前言:毫无例外,基本上是所有人都有一颗中奖的心,不管是有钱的,还是没钱的!你们说对吗?对于技术人员来说,通过技术分析,可以增加中奖几率,现使用python语言收集历史双色球中奖信息,之后进行预测分析。...

C语言实战之文件复制

在C语言中,复制文件可以通过读取源文件的内容并将其写入目标文件来实现。以下是一个简单的示例程序,演示如何复制文件。示例代码#include<stdio.h>#include<s...

用Python一分钟搞定了本要一晚才能做完的800张奖状海报

随着互联网公司的兴起,编程技术越来越吃香,尤其是Python。其实不用说,你也应该发现了,现在稍微有些粉丝的公众号,都接有Python的广告。这说明了什么?说明真的火!但是我今天不是来推Python的...

手把手教你玩转Copy命令

一.简介COPY命令是Windows操作系统中一个广泛使用的命令行工具,它用于复制文件和目录。与在资源管理器中进行操作不同,COPY命令可以通过指定源文件和目标位置来进行复制,使得它可以自动...

学习VB编程第20天,文件读取写入

今天学习了刘金玉老师VB编程教程的第28期,学习的主要内容是文件读取写入。1.dountil......loop循环语句①语法结构dountil条件表达式的值类型符合条件的要执行的代码.........

新手学Python避坑,学习效率狂飙! 二十一、print()函数

感谢大家对《新手学Python避坑,学习效率狂飙!》系列的点赞、关注和收藏,今天这编是这个系列的第二十一个分享,前面还有二十个,大家可以关注下之前发布的文章。下面是我们今天第三个的分享:在Pytho...

如何用python的requests来下载网页内容保存到txt

如何用python的requests来下载网页内容保存到txtimportrequests#定义目标网页和保存路径url="http://www.5a8.com"fil...

Windows下如何将WSL安装到非C盘?三种实用方法分享!

Windows下如何将WSL安装到非C盘?三种实用方法分享!前言随着微软对Linux支持的不断加强,WSL(WindowsSubsystemforLinux)已成为众多开发者的得力工具。然而,很...

C#程序注册成服务

某些时候我们需要一个程序在电脑开机后就自动启动,无界面运行在后台。比如数据上传功能,我们需要在电脑开机后程序就自动启动,上传我们需要的数据,而不是每次开机都要手动去运行程序。1、新建一个项目,该项目实...

怎么在Python中读取和写入文件?

Python是一种高级编程语言,它提供了许多内置函数和模块,可用于读取和写入文件。读取和写入文件是Python编程中非常基本和必要的操作,因为很多应用程序需要从外部文件中读取数据,或将数据写入外部文件...