Python 自动化脚本系列:第5集

41. 使用 cryptography 库自动化文件加密

Python 的 cryptography 库提供了一种使用对称加密算法加密和解密文件的安全方式。你可以自动化加密和解密文件的过程,以保护敏感数据。

示例:使用 Fernet 加密和解密文件

假设你想使用 Fernet 对称加密算法加密一个文件,然后再解密它。以下是如何使用 cryptography 库自动化此任务的方法:

from cryptography.fernet import Fernet  # 要加密的文件  
file_to_encrypt = 'sensitive_data.txt'  # 生成一个密钥  
key = Fernet.generate_key()  # 使用该密钥创建一个 Fernet 密码器  
cipher = Fernet(key)  # 读取文件内容  
with open(file_to_encrypt, 'rb') as file:  data = file.read()  # 加密数据  
encrypted_data = cipher.encrypt(data)  # 将加密数据写入新文件  
with open('encrypted_file.txt', 'wb') as file:  file.write(encrypted_data)  print("文件成功加密。")  # 解密文件  
with open('encrypted_file.txt', 'rb') as file:  encrypted_data = file.read()  decrypted_data = cipher.decrypt(encrypted_data)  # 将解密数据写入新文件  
with open('decrypted_file.txt', 'wb') as file:  file.write(decrypted_data)  print("文件成功解密。")

这段代码片段使用 Fernet.generate_key() 生成一个随机加密密钥。然后,它使用生成的密钥创建一个 Fernet 密码器。它以二进制模式 (‘rb’) 使用 open() 读取要加密的文件的内容。然后使用 Fernet 密码器的 encrypt() 方法加密数据。加密的数据使用二进制写模式 (‘wb’) 的 open() 写入名为 ‘encrypted_file.txt’ 的新文件中。为了解密文件,它从 ‘encrypted_file.txt’ 读取加密数据,并使用 Fernet 密码器的 decrypt() 方法解密。解密的数据随后被写入名为 ‘decrypted_file.txt’ 的新文件中。最后,它打印出成功加密和解密文件的消息。

42. 使用 Pillow 自动化图片水印处理

Python 的 Pillow 库提供了图像处理功能,包括向图像添加水印。你可以自动化为多张图片添加特定文本或标志的水印的过程。

示例:向图片添加文本水印

假设你想为一批图片添加文本水印。以下是如何使用 Pillow 库自动化此任务的方法:

from PIL import Image, ImageDraw, ImageFont  
import os  # 包含图片的目录  
image_directory = 'path/to/image/directory'  # 水印文本和字体  
watermark_text = 'Your Watermark'  
font = ImageFont.truetype('arial.ttf', 36)  # 遍历目录中的图片  
for filename in os.listdir(image_directory):  if filename.endswith('.jpg') or filename.endswith('.png'):  # 打开图片  image_path = os.path.join(image_directory, filename)  image = Image.open(image_path)  # 创建绘图上下文  draw = ImageDraw.Draw(image)  # 计算水印位置  text_width, text_height = draw.textsize(watermark_text, font)  x = image.width - text_width - 10  y = image.height - text_height - 10  # 在图片上绘制水印  draw.text((x, y), watermark_text, font=font, fill=(255, 255, 255, 128))  # 保存加水印后的图片  watermarked_filename = f"watermarked_{filename}"  watermarked_path = os.path.join(image_directory, watermarked_filename)  image.save(watermarked_path)  print(f"水印添加完成: {filename}")

这段代码片段遍历指定目录中的图片。它检查每个文件是否以 ‘.jpg’ 或 ‘.png’ 扩展名结尾,以识别图像文件。对于每个图像文件,它使用 Pillow 库的 Image.open() 打开图像。它使用 ImageDraw.Draw() 创建一个绘图上下文,以便在图像上绘图。它根据图像尺寸和文本大小计算水印文本的位置。水印定位在图像的右下角,略微偏移。使用绘图上下文的 text() 方法,它在图像上绘制指定字体、大小和颜色(带透明度的白色)的水印文本。使用 save() 方法,加水印后的图像以 ‘watermarked_’ 前缀的新文件名保存。最后,它打印出完成图像加水印过程的消息。

43. 使用 PyPDF2 自动化提取文件元数据

Python 的 PyPDF2 库允许你从 PDF 文件中提取元数据。你可以自动化从多个 PDF 文件中提取特定元数据字段的过程。

示例:从 PDF 文件中提取作者和标题

假设你有一个包含 PDF 文件的目录,你想从每个文件中提取作者和标题的元数据。以下是如何使用 PyPDF2 库自动化此任务的方法:

import os  
from PyPDF2 import PdfFileReader  # 包含 PDF 文件的目录  
pdf_directory = 'path/to/pdf/directory'  # 遍历目录中的 PDF 文件  
for filename in os.listdir(pdf_directory):  if filename.endswith('.pdf'):  # 打开 PDF 文件  pdf_path = os.path.join(pdf_directory, filename)  with open(pdf_path, 'rb') as file:  # 创建 PDF 阅读器对象  pdf_reader = PdfFileReader(file)  # 提取元数据  metadata = pdf_reader.getDocumentInfo()  author = metadata.get('/Author', '未知')  title = metadata.get('/Title', '未知')  print(f"文件: {filename}")  print(f"作者: {author}")  print(f"标题: {title}")  print("---")  print("元数据提取完成。")

这段代码片段遍历指定目录中的 PDF 文件。它检查每个文件是否以 ‘.pdf’ 扩展名结尾,以识别 PDF 文件。对于每个 PDF 文件,它以二进制读模式 (‘rb’) 使用 open() 打开文件。它从 PyPDF2 库创建一个 PdfFileReader 对象来读取 PDF 文件。使用 PDF 阅读器对象的 getDocumentInfo() 方法,它检索 PDF 文件的元数据字典。它使用 get() 方法提取作者和标题元数据字段,如果字段不存在,提供默认值 ‘未知’。对于每个 PDF 文件,它会打印出作者和标题的提取元数据,以及文件名,用一行破折号分隔。最后,它打印出完成元数据提取过程的消息。

44. 利用 lzma 实现文件压缩和解压自动化

Python 的 lzma 模块支持使用 LZMA 压缩算法来压缩和解压文件。你可以自动化文件压缩过程,以节省存储空间并减少文件传输时间。

示例:使用 LZMA 压缩和解压文件

假如你想使用 LZMA 压缩一个文件,然后再解压它。以下是如何使用 Python 自动化此任务的方法:

import lzma  # 要压缩的文件  
file_to_compress = 'example.txt'  # 压缩文件  
with open(file_to_compress, 'rb') as file_in:  with lzma.open(file_to_compress + '.xz', 'wb') as file_out:  file_out.write(file_in.read())  print("文件成功压缩。")  # 解压文件  
with lzma.open(file_to_compress + '.xz', 'rb') as file_in:  with open('decompressed_file.txt', 'wb') as file_out:  file_out.write(file_in.read())  print("文件成功解压。")

这段代码片段使用二进制模式 (‘rb’) 读取要压缩的文件内容,然后使用 lzma.open() 以二进制写模式 (‘wb’) 创建一个新的 LZMA 文件,文件名与原文件相同,扩展名为 ‘.xz’。原文件的内容通过 write() 写入 LZMA 文件。为了解压文件,它使用 lzma.open() 以二进制读模式 (‘rb’) 打开 LZMA 文件,然后将解压后的内容写入名为 ‘decompressed_file.txt’ 的新文件。最后,它打印出成功压缩和解压文件的消息。

45. 使用 PyCrypto 自动化文件加密

Python 的 PyCrypto 库提供了安全加密和解密文件的加密原语。你可以自动化使用对称加密算法加密和解密文件的过程。

示例:使用 AES 加密和解密文件

假如你想使用 AES 加密算法加密一个文件,然后再解密它。以下是如何使用 PyCrypto 自动化此任务的方法:

from Crypto.Cipher import AES  
from Crypto.Random import get_random_bytes  # 要加密的文件  
file_to_encrypt = 'sensitive_data.txt'  # 生成一个随机加密密钥  
key = get_random_bytes(16)  # 创建一个 AES 密码对象  
cipher = AES.new(key, AES.MODE_EAX)  # 读取文件内容  
with open(file_to_encrypt, 'rb') as file:  plaintext = file.read()  # 加密数据  
ciphertext, tag = cipher.encrypt_and_digest(plaintext)  # 将加密数据写入新文件  
with open('encrypted_file.bin', 'wb') as file:  [file.write(x) for x in (cipher.nonce, tag, ciphertext)]  print("文件成功加密。")  # 解密文件  
with open('encrypted_file.bin', 'rb') as file:  nonce, tag, ciphertext = [file.read(x) for x in (16, 16, -1)]  cipher = AES.new(key, AES.MODE_EAX, nonce)  
plaintext = cipher.decrypt_and_verify(ciphertext, tag)  # 将解密数据写入新文件  
with open('decrypted_file.txt', 'wb') as file:  file.write(plaintext)  print("文件成功解密。")

这段代码片段使用 get_random_bytes() 生成一个随机加密密钥。它使用密钥和 EAX 模式创建一个 AES 密码对象。它读取要加密的文件内容,并使用密码对象的 encrypt_and_digest() 方法加密数据。加密数据连同 nonce 和 tag 一起写入名为 ‘encrypted_file.bin’ 的新文件。为了解密文件,它从加密文件中读取 nonce、tag 和密文。它使用相同的密钥和 nonce 创建一个新的 AES 密码对象。使用 decrypt_and_verify() 方法解密密文并使用 tag 验证完整性。然后将解密的数据写入名为 ‘decrypted_file.txt’ 的新文件。

46. 使用 Dropbox API 自动化文件同步

Python 提供了与各种云存储服务(如 Dropbox)交互的库。你可以使用 Dropbox API 自动化本地机器与 Dropbox 之间文件的同步过程。

示例:与 Dropbox 同步文件

假设你想同步本地机器与 Dropbox 之间的特定文件。以下是如何使用 Dropbox API 自动化此任务的方法:

import dropbox  
import os  # Dropbox 访问令牌  
ACCESS_TOKEN = 'your_access_token'  # 要同步的本地目录  
local_directory = '/path/to/local/directory'  # 要同步的 Dropbox 目录  
dropbox_directory = '/path/to/dropbox/directory'  # 创建 Dropbox 客户端  
dbx = dropbox.Dropbox(ACCESS_TOKEN)  # 从本地同步文件到 Dropbox  
for root, dirs, files in os.walk(local_directory):  for filename in files:  local_path = os.path.join(root, filename)  relative_path = os.path.relpath(local_path, local_directory)  dropbox_path = os.path.join(dropbox_directory, relative_path)  with open(local_path, 'rb') as f:  dbx.files_upload(f.read(), dropbox_path, mode=dropbox.files.WriteMode.overwrite)  print(f"已上传: {local_path} -> {dropbox_path}")  # 从 Dropbox 同步文件到本地  
for entry in dbx.files_list_folder(dropbox_directory).entries:  if isinstance(entry, dropbox.files.FileMetadata):  dropbox_path = entry.path_display  local_path = os.path.join(local_directory, os.path.relpath(dropbox_path, dropbox_directory))  if not os.path.exists(os.path.dirname(local_path)):  os.makedirs(os.path.dirname(local_path))  _, response = dbx.files_download(dropbox_path)  with open(local_path, 'wb') as f:  f.write(response.content)  print(f"已下载: {dropbox_path} -> {local_path}")  print("文件同步完成。")

这段代码片段假设你已经获取了 Dropbox API 的访问令牌。你需要将 'your_access_token' 替换为你实际的访问令牌。它定义了要同步的本地目录和 Dropbox 目录。然后,它使用 dropbox.Dropbox() 构造函数创建一个 Dropbox 客户端,传递访问令牌。为了从本地目录同步文件到 Dropbox,它使用 os.walk() 遍历本地目录。对于每个文件,它构造本地路径和相应的 Dropbox 路径。它读取文件内容并使用 files_upload() 方法上传到 Dropbox,覆盖任何现有文件。为了从 Dropbox 同步文件到本地目录,它使用 files_list_folder() 检索 Dropbox 目录中的文件列表。对于每个文件条目,它构造 Dropbox 路径和相应的本地路径。如果不存在必要的目录,它使用 os.makedirs() 创建目录。然后,它使用 files_download() 下载文件内容并将其写入本地文件。最后,它打印出完成文件同步过程的消息。

47. 使用 py7zr 自动化文件压缩和归档

Python 的 py7zr 库允许你创建和提取 7z 归档文件。你可以自动化将文件压缩并归档到 7z 归档中的过程,以及从 7z 归档中提取文件的过程。

示例:创建和提取 7z 归档

假设你想创建一个包含多个文件的 7z 归档,然后从归档中提取这些文件。以下是如何使用 py7zr 库自动化此任务的方法:

import py7zr  # 要归档的文件  
files_to_archive = ['file1.txt', 'file2.txt', 'file3.txt']  # 7z 归档的名称  
archive_name = 'example.7z'  # 创建 7z 归档  
with py7zr.SevenZipFile(archive_name, 'w') as archive:  for file in files_to_archive:  archive.write(file)  print("7z 归档成功创建。")  # 从 7z 归档中提取文件  
with py7zr.SevenZipFile(archive_name, 'r') as archive:  archive.extractall()  print("文件成功提取。")

这段代码片段定义了要包含在 7z 归档中的文件列表和归档的名称。它使用 py7zr.SevenZipFile() 以写模式(‘w’)打开 7z 归档。然后,它遍历要归档的文件,并使用 write() 方法将每个文件添加到归档中。为了从 7z 归档中提取文件,它以读模式(‘r’)使用 py7zr.SevenZipFile() 打开归档。使用 extractall() 方法从归档中提取所有文件。最后,它打印出成功创建 7z 归档和从归档中提取文件的消息。

48. 使用 PyCryptodome 自动化文件加密

Python 的 PyCryptodome 库提供了安全加密和解密文件的加密原语。你可以自动化使用对称加密算法加密和解密文件的过程。

示例:使用 AES 加密和解密文件

假设你想使用 AES 加密算法加密一个文件,然后再解密它。以下是如何使用 PyCryptodome 自动化此任务的方法:

from Crypto.Cipher import AES  
from Crypto.Random import get_random_bytes  # 要加密的文件  
file_to_encrypt = 'sensitive_data.txt'  # 生成一个随机加密密钥  
key = get_random_bytes(16)  # 创建一个 AES 密码对象  
cipher = AES.new(key, AES.MODE_EAX)  # 读取文件内容  
with open(file_to_encrypt, 'rb') as file:  plaintext = file.read()  # 加密数据  
ciphertext, tag = cipher.encrypt_and_digest(plaintext)  # 将加密数据写入新文件  
with open('encrypted_file.bin', 'wb') as file:  [file.write(x) for x in (cipher.nonce, tag, ciphertext)]  print("文件成功加密。")  # 解密文件  
with open('encrypted_file.bin', 'rb') as file:  nonce, tag, ciphertext = [file.read(x) for x in (16, 16, -1)]  cipher = AES.new(key, AES.MODE_EAX, nonce)  
plaintext = cipher.decrypt_and_verify(ciphertext, tag)  # 将解密数据写入新文件  
with open('decrypted_file.txt', 'wb') as file:  file.write(plaintext)  print("文件成功解密。")

这段代码片段使用 get_random_bytes() 生成一个随机加密密钥。它使用密钥和 EAX 模式创建一个 AES 密码对象。它读取要加密的文件内容,并使用密码对象的 encrypt_and_digest() 方法加密数据。加密数据连同 nonce 和 tag 一起写入名为 ‘encrypted_file.bin’ 的新文件。为了解密文件,它从加密文件中读取 nonce、tag 和密文。它使用相同的密钥和 nonce 创建一个新的 AES 密码对象。使用 decrypt_and_verify() 方法解密密文并使用 tag 验证完整性。然后将解密的数据写入名为 ‘decrypted_file.txt’ 的新文件。

49. 情感分析

情感分析是确定文本中表达的情感或情绪的过程。你可以使用 Python 库如 NLTK 或 TextBlob 自动化情感分析。

示例:分析电影评论的情感

假设你有一组电影评论数据,你想分析每条评论的情感。以下是如何使用 TextBlob 自动化此任务的方法:

from textblob import TextBlob  # 电影评论  
reviews = [  "这部电影太棒了!演技一流,情节吸引人。",  "我不喜欢这部电影。故事预测性强,角色单一。",  "这部影片有它的时刻,但总体上是让人失望的。节奏慢,结局不满意。"  
]  # 对每条评论进行情感分析  
for review in reviews:  blob = TextBlob(review)  sentiment = blob.sentiment  print("评论:", review)  print("情感极性:", sentiment.polarity)  print("情感主观性:", sentiment.subjectivity)  print("---")

这段代码片段定义了一组电影评论。然后,它遍历每条评论,并从评论文本创建一个 TextBlob 对象。TextBlob 对象的 sentiment 属性提供情感分析结果。polarity 分数从 -1(负面情感)到 1(正面情感)变化,而 subjectivity 分数从 0(客观)到 1(主观)变化。为每条评论打印情感分析结果,包括极性和主观性分数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/11838.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【QEMU系统分析之实例篇(三十三)】

系列文章目录 第三十三章 QEMU系统仿真的机器创建分析实例 GSI 文章目录 系列文章目录第三十三章 QEMU系统仿真的机器创建分析实例GSI 前言一、QEMU是什么?二、QEMU系统仿真的机器创建分析实例1.系统仿真的命令行参数2. 将当前机器配置导出到文件qmp_x_exit_preco…

【机器学习】机器学习与人工智能融合新篇章:自适应智能代理在多元化复杂环境中的创新应用与演进趋势

🔒文章目录: 💥1.引言 🚋1.1 机器学习与人工智能的发展背景 🚌1.2 自适应智能代理的概念与重要性 🚐1.3 研究目的与意义 ☔2.自适应智能代理的关键技术 🛣️2.1 环境感知与信息处理技术 …

根据间隔获取一段时间内的所有时间(附String,Date,LocalDateTime 之间的转换)

根据间隔获取一段时间内的所有时间 public static List<LocalDateTime> getTimeIntervals(LocalDateTime startTime, LocalDateTime endTime, int interval, String intervalType) {List<LocalDateTime> timeIntervals new ArrayList<>();switch (interval…

RelationMap图谱--VUE,真实项目提供mock数据

RelationMap官网&#xff1a; 在线配置官网&#xff08;可以把数据放进去&#xff0c;直接看效果&#xff09; VUE2 效果&#xff1a;左侧列表栏&#xff0c;点击右侧显示对应的图谱 代码&#xff1a;按照代码直接贴过去&#xff0c;直接出效果 relationMap/index.vue <te…

泽攸科技无掩模光刻机:引领微纳制造新纪元

在当今科技迅猛发展的时代&#xff0c;微纳制造技术正变得越来越重要。泽攸科技作为这一领域的先行者&#xff0c;推出了其创新的无掩模光刻机&#xff0c;这一设备在微电子制造、微纳加工、MEMS、LED、生物芯片等多个高科技领域展现出了其独特的价值和广泛的应用前景。 技术革…

Python-VBA函数之旅-tuple函数

目录 一、tuple函数的常见应用场景 二、tuple函数使用注意事项 三、如何用好tuple函数&#xff1f; 1、tuple函数&#xff1a; 1-1、Python&#xff1a; 1-2、VBA&#xff1a; 2、推荐阅读&#xff1a; 个人主页&#xff1a; https://myelsa1024.blog.csdn.net/ 一、tu…

爱普生推出适用于物联网小尺寸温补晶振TG1612SLN

爱普生推出一款小尺寸温补晶振TG1612SLN&#xff0c;之前推出的小尺寸温补晶振TG2016SLN&#xff0c;封装2016已经是很小了&#xff0c;而TG1612SLN的尺寸仅为1.6x1.2x0.45毫米&#xff0c;不得不佩服爱普生的研发能力。 温度补偿晶体振荡器TG1612SLN使用爱普生开发和制造…

打造微信小程序简易视频编辑应用:从入门到实践

打造微信小程序简易视频编辑应用&#xff1a;从入门到实践 引言 随着社交媒体的兴起&#xff0c;视频已成为人们表达自我、分享生活的重要形式。微信小程序作为一个轻量级的应用平台&#xff0c;为用户提供了随时随地创作和分享视频的便捷途径。本文将带你一起探索如何使用微…

程序员的神奇应用:从代码创造到问题解决的魔法世界之持续集成/持续部署

文章目录 持续集成/持续部署 在软件开发的海洋中&#xff0c;程序员的实用神器如同航海中的指南针&#xff0c;帮助他们导航、加速开发、优化代码质量&#xff0c;并最终抵达成功的彼岸。这些工具覆盖了从代码编写、版本控制到测试和部署的各个环节。 在当今数字化的世界里&…

Llama 3 是怎么回事?Arena 数据分析

4 月 18 日,Meta 发布了他们最新的开放权重大型语言模型 Llama 3。从那时起,Llama 3-70B 就在 English Chatbot Arena 排行榜上迅速上升,拥有超过 50,000 次对战。Meta 的这一非凡成就对开源社区来说是个好消息。在这篇博文中,我们旨在深入探讨为什么用户将 Llama 3-70b 与 GPT…

Linux信息显示相关指令

1、查看cpu 查看cpu信息:cat /proc/cpuinfo 查看cpu个数:nproc cat /proc/cpuinfo | grep "physical id" | uniq | wc -l uniq命令:删除重复行;wc –l命令:统计行数 查看CPU核数 cat /proc/cpuinfo | grep "cpu cores" | uniq 2、查看内存 cat /pr…

SpringSecurity多表,多端账户登录

本文章对应视频SpringSecurity6多端账号登录&#xff0c;可无限扩展教程&#xff0c;记得三连哦&#xff0c;这对我很重要呢&#xff01; 温馨提示&#xff1a;视频与文章相辅相成&#xff0c;结合学习效果更强哦&#xff01;更多视频教程可移步B站【石添的编程哲学】 SpringSe…

快解析Tplink端口映射如何设置

Tplink作为国内知名路由器品牌&#xff0c;有着广泛的用户群体。使用快解析端口映射是实现内网服务器被外网访问必须要做的设置&#xff0c;很多对网络不懂得小白不知道该到哪里去做&#xff0c;下面我就讲解一下tplink路由器如何做端口映射。 1&#xff1a;访问路由器 &#…

uboot 顶层 Makefile 逐行分析

文章目录 0001-00080009-00180019-00510052-00920093-01070108-01230124-01770178-21350178-01810182-01860187-02020203-02450246-02620263-02720273-03370338-03830384-03870388-04250426-04490450-04740475-04860487-04980499-05340535-05500551-05650566-221822192220-2332…

想半天憋不出几个字?试试AI扩写

大家在写文章时是否也经常这样&#xff1f;想了半天&#xff0c;结果只能写出几个字&#xff0c;但是要求往往又是几百多个字&#xff0c;那么有没有啥工具可以帮我们在原文的基础上扩写一下文章字数&#xff0c;让我们达到字数要求呢&#xff1f; 下面给大家介绍一下如何扩写文…

Django开发实战之定制管理后台界面及知识梳理(下)

接上一篇&#xff1a;Django开发实战之定制管理后台界面及知识梳理&#xff08;中&#xff09; 1、前台设置 1、隐藏路由 当你输入一个错误地址时&#xff0c;可以看到这样的报错&#xff1a; 从这样的报错中&#xff0c;我们可以看到&#xff0c;这个报错页面暴漏了路由&a…

江西省生态环境工程技术人员职称申报条件

江西省生态环境工程技术人员职称申报条件评审文件链接江西省生态环境厅 其它通知、公示信息 关于印发《江西省生态环境工程技术人员职称申报条件&#xff08;试行&#xff09;》的通知评审工作的通知江西省生态环境厅 其它通知、公示信息 江西省生态环境厅关于做好2024年工程系…

到底什么是离岸账户?

离岸账户&#xff0c;顾名思义就是银行为非居民开设的账户&#xff0c;举个例子&#xff0c;英国公司在香港汇丰开设账户或者香港公司在大陆的平安银行开设账户&#xff0c;就属于离岸账户&#xff0c;如果是中国居民想要开设离岸账户&#xff0c;只能先注册一个其属地的离岸公…

FullCalendar日历组件集成实战(1)

背景 有一些应用系统或应用功能&#xff0c;如日程管理、任务管理需要使用到日历组件。虽然Element Plus也提供了日历组件&#xff0c;但功能比较简单&#xff0c;用来做数据展现勉强可用。但如果需要进行复杂的数据展示&#xff0c;以及互动操作如通过点击添加事件&#xff0…

python数据可视化:从n个点中挑选m组3个点绘制m个三角形matplotlib.pyplot.triplot()

【小白从小学Python、C、Java】 【考研初试复试毕业设计】 【Python基础AI数据分析】 python数据可视化&#xff1a; 从n个点中挑选m组3个点 绘制m个三角形 matplotlib.pyplot.triplot() [太阳]选择题 以下关于matplotlib.pyplot.triplot()函数说法正确的是&#xff1f; impor…