highlight: an-old-hope
本文源自白璽,创自白璽。转载请标注出处。本文参与掘金日新计划【博客搬家】
PythonPython 标准库
53 hashlib库
hashlib是Python标准库中的一个模块,用于实现各种哈希函数,如SHA1、SHA256、MD5等。下面是一个使用hashlib模块计算字符串哈希值的例子:
import hashlib
# 计算字符串'string'的MD5哈希值
md5 = hashlib.md5()
md5.update('string'.encode('utf-8'))
print(md5.hexdigest())
# 计算字符串'string'的SHA1哈希值
sha1 = hashlib.sha1()
sha1.update('string'.encode('utf-8'))
print(sha1.hexdigest())
输出结果:
b45cffe084dd3d20d928bee85e7b0f21
e42b523aa1e00d53e9e47d6a3666b8e6b0051f6a
这个例子中,我们首先导入了hashlib模块,然后创建了md5和sha1两个哈希对象。接着使用update()方法传入待计算哈希值的数据(这里是字符串'string'),并调用hexdigest()方法获取哈希值的字符串表示形式。
可以看到,对于相同的字符串,不同的哈希函数会得到不同的哈希值。在实际应用中,哈希函数可以用于加密、数据完整性校验等方面。
54 xml库
xml库是Python中用于处理XML文档的标准库。下面是一个简单的示例代码,它演示了如何使用xml库读取和修改XML文件。
import xml.etree.ElementTree as ET
# 读取XML文件
tree = ET.parse('example.xml')
root = tree.getroot()
# 遍历XML文件中的所有节点
for child in root:
print(child.tag, child.attrib)
# 修改XML文件中的节点
for neighbor in root.iter('neighbor'):
if neighbor.attrib['name'] == 'B':
neighbor.attrib['name'] = 'C'
# 添加新的节点到XML文件
new_neighbor = ET.SubElement(root, 'neighbor')
new_neighbor.set('name', 'D')
# 保存修改后的XML文件
tree.write('example.xml')
以上代码中,我们首先使用ET.parse()方法读取XML文件,并使用getroot()方法获取XML文件的根节点。然后使用for循环遍历根节点的所有子节点,并使用print()函数打印节点名称和属性。
接下来,我们使用root.iter()方法遍历XML文件中所有名为'neighbor'的节点,并使用if语句判断节点的属性是否等于'B'。如果是,我们将节点的'name'属性修改为'C'。
最后,我们使用ET.SubElement()方法创建一个新的节点,并使用set()方法设置节点的'name'属性。然后使用tree.write()方法将修改后的XML文件保存到磁盘上。
55 socket库
Python的socket库提供了对套接字编程的支持,可以实现网络通信。以下是一个简单的使用socket库的示例代码:
import socket
# 创建TCP套接字
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定IP地址和端口号
server_socket.bind(('127.0.0.1', 8000))
# 监听客户端连接
server_socket.listen(1)
print('Server is running...')
while True:
# 等待客户端连接
client_socket, client_address = server_socket.accept()
print('Client %s:%s connected.' % client_address)
# 接收客户端发送的数据
data = client_socket.recv(1024)
print('Received data: %s' % data.decode('utf-8'))
# 发送响应数据给客户端
response = 'Hello, client!'
client_socket.send(response.encode('utf-8'))
# 关闭客户端连接
client_socket.close()
上述代码创建了一个TCP服务器,监听端口号为8000。当客户端连接到服务器后,服务器会接收客户端发送的数据,并返回一个响应数据。
下面是一个简单的TCP客户端示例代码,可以用于连接上述TCP服务器:
import socket
# 创建TCP套接字
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 连接服务器
client_socket.connect(('127.0.0.1', 8000))
# 发送数据给服务器
data = 'Hello, server!'
client_socket.send(data.encode('utf-8'))
# 接收服务器返回的数据
response = client_socket.recv(1024)
print('Received response: %s' % response.decode('utf-8'))
# 关闭套接字
client_socket.close()
当客户端连接到服务器后,客户端会发送一条数据给服务器,并等待服务器返回响应数据。服务器接收到客户端发送的数据后,会返回一个响应数据给客户端。
56 smtplib库
smtplib库是Python中内置的用于发送电子邮件的库。它提供了一个SMTP客户端实现,可以用来发送邮件。下面是一个使用smtplib库发送邮件的例子:
import smtplib
from email.mime.text import MIMEText
# 邮件内容
msg = MIMEText('这是一封测试邮件!')
msg['Subject'] = '测试邮件' # 邮件标题
msg['From'] = 'example@gmail.com' # 发件人邮箱
msg['To'] = 'recipient@example.com' # 收件人邮箱
# 发送邮件
smtp_server = 'smtp.gmail.com' # SMTP服务器地址
smtp_port = 587 # SMTP服务器端口号
username = 'example@gmail.com' # 邮箱账号
password = 'password' # 邮箱密码
try:
server = smtplib.SMTP(smtp_server, smtp_port)
server.starttls()
server.login(username, password)
server.sendmail(username, msg['To'], msg.as_string())
server.quit()
print('邮件发送成功!')
except Exception as e:
print('邮件发送失败:', e)
在这个例子中,我们使用smtplib库创建一个SMTP客户端,连接到Gmail的SMTP服务器,并使用starttls()方法启用TLS加密。然后我们使用login()方法登录到邮箱账号,并使用sendmail()方法发送邮件。最后我们使用quit()方法关闭SMTP客户端连接。
需要注意的是,在使用smtplib库发送邮件时,需要提供正确的SMTP服务器地址和端口号,并且可能需要启用TLS加密和身份验证。此外,邮件的发送者和接收者也需要正确设置。
57 ftplib库
ftplib是Python自带的一个用于FTP客户端编程的库。它允许我们通过FTP协议上传、下载、删除、重命名文件或目录,以及列出远程FTP服务器上的文件和目录等。
以下是一个简单的示例代码,演示如何使用ftplib库连接FTP服务器,上传文件,并断开连接:
import ftplib
ftp = ftplib.FTP("ftp.example.com") # 连接FTP服务器
ftp.login("username", "password") # 登录
filename = "example.txt"
with open(filename, "rb") as file:
ftp.storbinary("STOR " + filename, file) # 上传文件
ftp.quit() # 断开连接
在这个示例中,我们首先使用ftplib库中的FTP类连接到FTP服务器,然后使用login()方法登录到服务器。接下来,我们使用open()函数打开一个本地文件,并使用storbinary()方法将其上传到FTP服务器上。最后,我们使用quit()方法断开与服务器的连接。
除了上传文件之外,ftplib还提供了许多其他的功能,例如下载文件、删除文件、重命名文件、创建目录、删除目录等。我们可以根据自己的需要使用这些功能。
需要注意的是,使用ftplib库需要确保你有FTP服务器的访问权限。如果你没有FTP服务器,可以尝试使用一些公共的FTP服务器进行测试。
58 email库
email库是Python自带的标准库,用于处理邮件相关的内容,包括创建、发送、解析和读取邮件等。下面是一个简单的示例,演示了如何使用email库创建一封邮件并发送。
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.image import MIMEImage
# 发件人邮箱
sender_email = 'sender@example.com'
# 收件人邮箱
receiver_email = 'receiver@example.com'
# 邮件主题
subject = '这是一封测试邮件'
# 创建MIMEMultipart对象
message = MIMEMultipart()
message['From'] = sender_email
message['To'] = receiver_email
message['Subject'] = subject
# 邮件正文
text = '这是一封测试邮件'
text_part = MIMEText(text, 'plain')
message.attach(text_part)
# 添加图片附件
with open('image.jpg', 'rb') as f:
image_data = f.read()
image_part = MIMEImage(image_data, name='image.jpg')
message.attach(image_part)
# 发送邮件
with smtplib.SMTP('smtp.example.com', 587) as smtp:
smtp.starttls()
smtp.login(sender_email, 'password')
smtp.send_message(message)
上面的代码中,首先创建了一个MIMEMultipart对象,作为邮件的主体。然后添加了邮件正文和图片附件,最后使用SMTP对象发送邮件。
需要注意的是,邮件正文和附件都需要使用相应的MIME类型进行编码,例如文本类型使用MIMEText,图片类型使用MIMEImage等。另外,在发送邮件之前需要先登录SMTP服务器,并使用starttls()方法启用TLS加密
本文是结合ChatGPT的答案总结的知识点,有不足之处请大佬们给出反馈。