python实现屏幕录制,录音录制工具
python实现屏幕录制,录音录制工具
一,介绍
Python 实现的屏幕录制和录音录制工具是一个便捷的应用程序,旨在帮助用户同时捕捉计算机屏幕上的活动以及与之相关的音频输出。这个工具尤其针对教育工作者、内容创作者、技术支持人员以及任何需要展示互动过程或共享实时演示的用户。
二,主要功能
- 屏幕录制:捕捉整个屏幕或指定区域的视频,能够以 AVI 或 MP4 等格式保存。
- 音频录制:能够选择录制系统音(计算机播放的音频)或外部环境声音(通过麦克风录制的声音),并将其保存为 WAV 格式文件。
- 多线程执行:实现屏幕录制与音频录制并行进行,确保同时捕捉视觉和听觉信息。
- 用户友好的图形界面:使用 Tkinter 库创建简单直观的用户界面,便于用户操作和设置录制参数。
1.作用
- 教育与培训:教师可以录制在线课程、课程演示或教学内容,方便学生回看和复习。
- 演示与演讲:讲师或营销人员可以创建产品演示和视频演讲,便于直观展示功能和效果。
- 技术支持与远程协助:技术支持人员可以记录故障排除过程,帮助用户解决问题,同时提供反馈和解决方案。
- 内容创作:内容创造者(如YouTuber和博主)可以制作视频教程、评论和游戏实况,增强与观众的互动。
2.目的
这个工具的主要目的是为用户提供一种高效、简便的方式来创建与记录屏幕活动和音频内容,减少传统录制过程中的复杂性,使制作视频内容变得更加可及与灵活。此外,此工具帮助用户以更直观、生动的方式记录和分享他们的工作或创意,有助于知识传播和信息共享。
通过集成屏幕录制与音频录制的功能,用户能够更全面地展现信息,提高内容的质量和吸引力,符合当今数字化学习与远程工作的需求。
三,用python实现录音功能
import tkinter as tk
# 导入 tkinter 库,用于创建图形用户界面 (GUI)。 from tkinter import filedialog, messagebox
# 从 tkinter 中导入文件选择对话框和消息框。 import pyaudio
# 导入 pyaudio 库,用于音频录制。 import wave
# 导入 wave 库,用于保存音频为 WAV 格式。 import sounddevice as sd
# 导入 sounddevice 库,用于录制系统声音。 import numpy as np
# 导入 numpy 库,通常用于数值计算,但在这个例子中未明显使用。 import soundfile as sf
# 导入 soundfile 库,用于保存音频文件(如 WAV)。 class AudioRecorderApp: # 定义一个类 AudioRecorderApp,表示音频录制工具。 def __init__(self, root): # 构造函数,初始化应用程序界面。 self.root = root self.root.title("音频录制工具") # 设置窗口标题。 self.record_option = tk.StringVar(value="external") # 创建一个字符串变量,用于存储录音方式(外部音频或系统音频)。 self.duration = tk.IntVar(value=10) # 创建一个整型变量用于存储录音时长,默认为10秒。 self.output_filename = None # 初始化保存文件名为 None,稍后选择保存位置时会更新。 # 录音方式选择 tk.Label(root, text="选择录音方式:").pack(pady=10) # 创建标签,提示用户选择录音方式。 tk.Radiobutton(root, text="外部环境声音", variable=self.record_option, value="external").pack(anchor=tk.W) # 创建单选按钮,选择外部环境声音录制方式。 tk.Radiobutton(root, text="系统声音", variable=self.record_option, value="system").pack(anchor=tk.W) # 创建单选按钮,选择系统声音录制方式。 # 录制时长输入 tk.Label(root, text="录音时长(秒):").pack(pady=10) # 创建标签,提示用户输入录音时长。 tk.Entry(root, textvariable=self.duration).pack() # 创建文本输入框,用户输入录音时长。 # 选择保存位置按钮 tk.Button(root, text="选择保存位置", command=self.select_output_file).pack(pady=10) # 创建按钮,点击后选择保存文件的位置。 # 开始录音按钮 tk.Button(root, text="开始录音", command=self.start_recording).pack(pady=20) # 创建按钮,点击后开始录音。 def select_output_file(self): # 定义选择保存文件名的方法。 self.output_filename = filedialog.asksaveasfilename(defaultextension=".wav", filetypes=[("WAV files", "*.wav"), ("All files", "*.*")]) # 弹出文件对话框,让用户选择保存的文件名和位置。 if self.output_filename: messagebox.showinfo("选择成功", f"保存位置:{self.output_filename}") # 如果用户选择了文件名,弹出提示框确认选择。 def start_recording(self): # 定义开始录音的方法。 if not self.output_filename: messagebox.showwarning("警告", "请先选择保存位置!") # 如果未选择保存位置,弹出警告提示。 return if self.record_option.get() == "external": self.record_external_sound() # 如果选择外部音频,调用外部音频录制函数。 else: self.record_system_sound() # 否则调用系统声音录制函数。 def record_external_sound(self): # 定义外部声音录制的方法。 chunk = 4096 # 每次读取的音频数据块大小。 format = pyaudio.paInt16 # 设置音频格式为 16 位深度。 channels = 2 # 设置为立体声(两个通道)。 rate = 96000 # 设置采样率为 96 kHz。 duration = self.duration.get() # 获取用户输入的录音时长。 p = pyaudio.PyAudio() # 初始化 PyAudio。 stream = p.open(format=format, channels=channels, rate=rate, input=True, frames_per_buffer=chunk) # 打开音频流进行录制。 frames = [] # 创建一个空列表,用于存储录音数据。 messagebox.showinfo("信息", "开始录制外部声音...") # 弹出提示框,通知用户开始录音。 for _ in range(0, int(rate / chunk * duration)): data = stream.read(chunk) # 循环读取音频数据块。 frames.append(data) # 将读取的数据块添加到 frames 列表中。 stream.stop_stream() # 停止音频流。 stream.close() # 关闭音频流。 p.terminate() # 终止 PyAudio 会话,释放资源。 with wave.open(self.output_filename, 'wb') as wf: # 以写入模式打开 WAV 文件。 wf.setnchannels(channels) # 设置音频通道数。 wf.setsampwidth(p.get_sample_size(format)) # 设置样本宽度。 wf.setframerate(rate) # 设置采样率。 wf.writeframes(b''.join(frames)) # 将所有录制的帧写入文件。 messagebox.showinfo("信息", "外部声音录制完成。") # 弹出提示框,通知用户外部声音录制完成。 def record_system_sound(self): # 定义录制系统声音的方法。 fs = 192000 # 设置采样率为 192 kHz。 duration = self.duration.get() # 获取用户输入的录音时长。 messagebox.showinfo("信息", "开始录制系统声音...") # 弹出提示框,通知用户开始录制系统声音。 audio = sd.rec(int(duration * fs), samplerate=fs, channels=2, dtype='float32', blocking=True) # 使用 sounddevice 库录制音频,blocking=True 参数确保录制完成后再继续执行后面的代码。 sf.write(self.output_filename, audio, fs) # 使用 soundfile 库将录制的音频保存为 WAV 文件。 messagebox.showinfo("信息", "系统声音录制完成。") # 弹出提示框,通知用户系统声音录制完成。 if __name__ == "__main__": root = tk.Tk() # 创建主窗口。 app = AudioRecorderApp(root) # 初始化音频录制工具类。 root.mainloop() # 启动 tkinter 事件循环,运行应用程序。
运行结果:
代码功能概述
这段代码实现了一个简单的音频录制工具,用户可以选择录制外部环境声音或系统声音。它具有以下功能:
-
界面创建:使用 tkinter 创建图形用户界面,包括选择录音方式(外部音频或系统音频)、输入录音时长、选择保存文件位置和开始录音的按钮。
-
选择文件保存位置:用户可以通过文件对话框选择录音文件的存储路径及文件名。
-
录音:
- 外部声音录制:使用 PyAudio 库录制外部环境的声音,并将录制的数据保存为 WAV 文件。
- 系统声音录制:使用 sounddevice 库录制系统声音并保存为 WAV 文件。
-
反馈提示:在录音开始和结束时,程序会通过消息框向用户提供相关信息和提示。
注意事项
- 确保已安装所需的库:
tkinter
、pyaudio
、wave
、sounddevice
、numpy
、soundfile
,可以通过pip install
命令安装这些库。 - 该代码适用于 Windows 和部分 Linux 系统,但在 macOS 上可能需要额外配置,因为音频流的访问权限可能会有所不同。
- 录音时,确保已选择正确的录音设备以获得更好的音质。
四,用python实现录屏录音功能
import tkinter as tk
# 导入 tkinter 库,创建图形用户界面(GUI)。 from tkinter import filedialog, messagebox
# 从 tkinter 导入文件对话框(filedialog)和消息框(messagebox)模块。这用于选择文件和显示异步消息。 import pyaudio
# 导入 PyAudio 库,用于音频输入/输出。 import wave
# 导入 Wave 库,用于处理 WAV 音频文件。 import sounddevice as sd
# 导入 sounddevice 库,用于进行系统声音的录制。 import numpy as np
# 导入 numpy 库,为数据处理提供支持。 import cv2
# 导入 OpenCV 库,用于图像处理和视频录制。 import pyautogui
# 导入 pyautogui 库,用于截屏。 import threading
# 导入 threading 库,用于创建多线程。 class AudioRecorderApp: # 定义一个类 AudioRecorderApp,表示音频录制工具应用。 def __init__(self, root): # 构造函数,初始化应用程序界面。 self.root = root self.root.title("音频录制工具") # 设置窗口标题。 self.record_option = tk.StringVar(value="external") # 创建一个字符串变量,存储录音方式,默认为“外部声音”。 self.duration = tk.IntVar(value=10) # 创建一个整型变量,存储录音时长,默认为10秒。 self.output_filename = None # 初始化输出文件名为 None,稍后选择保存路径时会更新。 self.is_recording = False # 初始化录音状态为 False。 # 录音方式选择 tk.Label(root, text="选择录音方式:").pack(pady=10) # 创建标签提示用户选择录音方式。 tk.Radiobutton(root, text="外部环境声音", variable=self.record_option, value="external").pack(anchor=tk.W) # 创建单选按钮用于选择“外部环境声音”录制方式。 tk.Radiobutton(root, text="系统声音", variable=self.record_option, value="system").pack(anchor=tk.W) # 创建单选按钮用于选择“系统声音”录制方式。 # 选择保存位置按钮 tk.Button(root, text="选择保存位置", command=self.select_output_file).pack(pady=10) # 创建按钮,点击后选择保存文件的路径。 tk.Label(root, text="录音时长(秒):").pack(pady=10) # 创建标签,指导用户输入录音时长。 tk.Entry(root, textvariable=self.duration).pack() # 创建文本框,用户输入录音时长。 # 开始录音按钮 tk.Button(root, text="开始录音", command=self.start_recording).pack(pady=20) # 创建按钮,点击后开始录音。 def select_output_file(self): # 定义选择保存文件名的方法。 self.output_filename = filedialog.asksaveasfilename(defaultextension=".wav", filetypes=[("WAV files", "*.wav"), ("所有文件", "*.*")]) # 弹出文件对话框,让用户选择保存的文件名和位置。 if self.output_filename: messagebox.showinfo("选择成功", f"保存位置:{self.output_filename}") # 如果用户选择了文件名,弹出提示框确认选择。 def start_recording(self): # 定义开始录音的方法。 if not self.output_filename: messagebox.showwarning("警告", "请先选择保存位置!") # 如果未选择保存位置,弹出警告提示。 return self.is_recording = True duration_sec = self.duration.get() # 获取用户输入的录音时长。 # 启动音频录制线程 audio_thread = threading.Thread(target=self.record_audio) audio_thread.start() # 创建一个新线程,运行录音函数。 # 启动屏幕录制线程 screen_thread = threading.Thread(target=self.record_screen) screen_thread.start() # 创建另一个线程,用于录制屏幕。 # 设置录制的持续时间 threading.Timer(duration_sec, self.stop_recording).start() # 设置计时器,到达时间后停止录def record_audio(self): # 定义录制音频的方法。 if self.record_option.get() == "external": self.record_external_sound() # 如果选项为“external”,则调用录制外部声音的方法。 elif self.record_option.get() == "system": self.record_system_sound() # 如果选项为“system”,则调用录制系统声音的方法。 def record_external_sound(self): # 定义录制外部声音的方法。 chunk = 4096 # 设置每次读取的音频块大小。 format = pyaudio.paInt16 # 设置音频格式为16位整型。 channels = 2 # 设置音频通道数为2(立体声)。 rate = 44100 # 设置采样率为44100Hz。 duration = self.duration.get() # 获取录音持续时间。 p = pyaudio.PyAudio() # 创建 PyAudio 实例。 stream = p.open(format=format, channels=channels, rate=rate, input=True, frames_per_buffer=chunk) # 打开音频流以进行录音。 frames = [] # 用于存储录制的音频帧。 messagebox.showinfo("信息", "开始录制外部声音...") # 弹出提示框,通知用户开始录制。 for _ in range(0, int(rate / chunk * duration)): # 根据设置的采样率和时长计算需循环的次数。 data = stream.read(chunk) # 从音频流中读取音频数据。 frames.append(data) # 将读取的数据添加到帧列表中。 stream.stop_stream() # 停止音频流。 stream.close() # 关闭音频流。 p.terminate() # 终止 PyAudio 实例。 with wave.open(self.output_filename, 'wb') as wf: # 使用 wave 模块以写入模式打开 WAV 文件。 wf.setnchannels(channels) # 设置声道数。 wf.setsampwidth(p.get_sample_size(format)) # 设置采样宽度。 wf.setframerate(rate) # 设置采样率。 wf.writeframes(b''.join(frames)) # 写入帧数据到文件。 messagebox.showinfo("信息", "外部声音录制完成。") # 弹出提示框,表示录制完成。 def record_system_sound(self): # 定义录制系统声音的方法。 fs = 192000 # 设置采样率为192000Hz。 duration = self.duration.get() # 获取录音持续时间。 messagebox.showinfo("信息", "开始录制系统声音...") # 弹出提示框,通知用户开始录制。 audio = sd.rec(int(duration * fs), samplerate=fs, channels=2, dtype='float32', blocking=True) # 使用 sounddevice 库录制系统声音,设置时长、采样率、声道数和数据类型。 sf.write(self.output_filename, audio, fs) # 将录制的数据写入指定文件。 messagebox.showinfo("信息", "系统声音录制完成。") # 弹出提示框,表示录制完成。 def record_screen(self): # 定义录制屏幕的方法。 output_file = self.output_filename.replace('.wav', '.avi') # 保存为AVI格式 fourcc = cv2.VideoWriter_fourcc(*'XVID') # 设置视频编码方式为 XVID。 fps = 20.0 # 设置帧率为20帧每秒。 screen_size = (1920, 1080) # 根据您的屏幕分辨率调整 # 指定屏幕尺寸。 out = cv2.VideoWriter(output_file, fourcc, fps, screen_size) # 创建 VideoWriter 对象,负责写入视频文件。 messagebox.showinfo("信息", "开始录制屏幕...") # 弹出提示框,通知用户开始录制。 duration_sec = self.duration.get() # 获取录制的持续时间。 for _ in range(int(duration_sec * fps)): # 将fps转换为整数 img = pyautogui.screenshot() # 截取屏幕 frame = cv2.cvtColor(np.array(img), cv2.COLOR_RGB2BGR) # 转换为OpenCV格式 out.write(frame) # 写入视频 cv2.waitKey(int(1000 / fps)) # 控制帧率 out.release() # 释放视频文件 messagebox.showinfo("信息", "屏幕录制完成。") # 弹出提示框,表示屏幕录制完成。 def stop_recording(self): # 定义停止录制的方法。 self.is_recording = False # 更新录音状态为 False。 messagebox.showinfo("信息", "录制已停止。") # 弹出提示框,通知用户录制已停止。 if __name__ == "__main__": root = tk.Tk() # 创建 Tkinter 窗口的根对象。 app = AudioRecorderApp(root) # 创建 AudioRecorderApp 的实例,传入根对象。 root.mainloop() # 启动 Tkinter 主事件循环,等待用户操作。
运行结果:
功能总结
以上代码是一个音频和屏幕录制工具的实现,主要功能包括:
- 选择录音方式:用户可以选择录制“外部环境声音”或“系统声音”。
- 选择保存位置:用户可以选择保存录制音频和视频的文件位置。
- 设置录音时长:用户可以输入录制的时长(以秒为单位)。
- 启动录制:
- 启动录制外部声音或系统声音。
- 启动屏幕录制,录制屏幕内容并将其保存为 AVI 格式视频。
- 多线程支持:使用 Python 的线程库并行录制音频和屏幕,可以提高效率。
- 停止录制:可以在指定的时间后自动停止录制,或手动调用停止录制的函数。
使用此应用程序,用户可以轻松地录制音频和视频,创建教程或其他需要录制的内容。
相关文章:

python实现屏幕录制,录音录制工具
python实现屏幕录制,录音录制工具 一,介绍 Python 实现的屏幕录制和录音录制工具是一个便捷的应用程序,旨在帮助用户同时捕捉计算机屏幕上的活动以及与之相关的音频输出。这个工具尤其针对教育工作者、内容创作者、技术支持人员以及任何需要…...

elementui 的 table 组件回显已选数据时候使用toggleRowSelection 方法的坑点
elementui 的 table 组件回显问题 "vue": "^2.7.16", "element-ui": "^2.15.14", 问题描述: 场景:首先我们是通过接口获取到数据之后 然后将返回的数据回显到表格上面 问题:直接将后端返回的数据…...

MATLAB基础应用精讲-【数模应用】负二项回归(附R语言和python代码实现)
目录 前言 几个高频面试题目 负二项回归、Probit回归如何选择 负二项回归 Probit回归 知识储备 逻辑回归 算法原理 多阈值负二项回归模型 模型及估计方法 负二项回归模型 多阈值负二项回归模型 分割阶段 精确估计阈值阶段 负二项回归的操作步骤 负二项回归…...

20240803 芯动科技 笔试
文章目录 1、单选题1.11.21.31.42、填空题2.12.23、问答题3.13.23.34、编程题4.14.24.3岗位:嵌入式软件工程师(25届校招)(J12042) 题型:4 道单选题,2 道填空题, 3 道简答题,3 道编程题 1、单选题 1.1 已知 5 个元素的出栈序列是 1,2,3,4,5,6 则对应的入栈顺序可能是 …...

如何将 ECharts 图表插入 HTML Canvas
在 Web 开发中,数据可视化是一个常见且重要的需求。ECharts 是一个强大的图表库,而 HTML5 Canvas 则提供了灵活的绘图能力。今天,我们将探讨如何将这两者结合起来,实现将 ECharts 生成的图表插入到 HTML Canvas 中的特定位置。 为…...

突破干扰,无人机自动驾驶技术详解
突破干扰的无人机自动驾驶技术,是一个结合了多学科领域的复杂系统,旨在确保无人机在复杂电磁环境、人为干扰等条件下仍能自主、安全地完成飞行任务。以下是对该技术的详细解析: 一、技术概述 无人机自动驾驶技术通过集成传感器技术、人工智…...

Xamarin学习计划
一、Xamarin 的产生历程 Xamarin 由 Nat Friedman 和 Miguel de Icaza 创立。它的出现主要是为了让开发者能够使用 C#语言来构建跨平台的移动应用程序。 Xamarin 提供了一种统一的开发方式,允许开发者使用熟悉的 C#语言和.NET 框架来开发同时适用于多个平台的应…...

exchange online邮件系统EAM双因素认证技术方案
exchange online邮件系统是指微软推出的电子邮件系统云服务,通常作为office 365和microsoft 365的一个子项目来提供服务。这样用户就不需要自己部署exchange邮件服务器,只需要订阅微软的云服务,然后就可以直接使用微软提供的exchange邮件服务…...

【数据结构与算法】栈和队列
文章目录 一.栈1.1定义 顺序栈和链式栈1.2基本操作1.2.1表示1.2.2初始化1.2.3清空1.2.4销毁1.2.5入栈1.2.6出栈1.2.7取栈顶 1.3共享栈1.3.1定义1.3.2进栈出栈 二.队列2.1定义 顺序队列和链式队列循环队列2.2基本操作2.2.1初始化2.2.2判空2.2.3求队列长度2.2.4取队头元素2.2.5销…...

基于php的图书管理系统
摘 要 随着互联网的发展,许多人都热衷于在线购物,无需离开家就可以获得所需的产品,通过简单的操作,就能够获得快速、准确的配送。 科技已然渗透到进社会的方方面面,让我们的学习、交流、工作变得无比轻松自如。由于…...

k8s Node节点维护
Kubernetes (K8s) 中对 Node 节点的维护是保证集群健康和性能的重要部分。Node 节点通常是 Kubernetes 工作负载的运行环境,负责运行 Pods。当需要对节点进行维护(如升级、修复问题、调整配置等)时,可能需要将该节点标记为不可用并…...

【航天宏图旗下的PIE engine】
航天宏图旗下的PIE engine是一个集实时分布式计算、交互式分析和数据可视化为一体的在线遥感云计算开放平台,以下是对其的详细介绍: 一、平台背景与定位 PIE-Engine地球科学引擎是航天宏图自主研发的一套基于容器云技术构建的面向地球科学领域的专业P…...

Python酷库之旅-第三方库Pandas(157)
目录 一、用法精讲 716、pandas.Timedelta.view方法 716-1、语法 716-2、参数 716-3、功能 716-4、返回值 716-5、说明 716-6、用法 716-6-1、数据准备 716-6-2、代码示例 716-6-3、结果输出 717、pandas.Timedelta.as_unit方法 717-1、语法 717-2、参数 717-3、…...

【原创】java+springboot+mysql校园表白墙网站设计与实现
个人主页:程序猿小小杨 个人简介:从事开发多年,Java、Php、Python、前端开发均有涉猎 博客内容:Java项目实战、项目演示、技术分享 文末有作者名片,希望和大家一起共同进步,你只管努力,剩下的交…...

CSS学习(Grid布局和flex布局比较)
grid网格布局真香,比flex方便太多了,grid-template-columns用法 文章目录 flex布局的时候网格grid布局的时候可以修改某一列的像素可以修改某一列的宽度占比自适应屏幕分列让第一个元素长宽都占2个 flex布局的时候 最后一行不够4个的时候 最下面一行无法…...

RTThread-Nano学习二-RT-Thread启动流程
一、简介 上一章,我们已经了解了如何通过MDK来移植RTT,不熟悉的可以看如下链接:RTThread-Nano学习一-基于MDK移植-CSDN博客本章我们就来继续了解一下,RTT的启动流程。 二、启动流程 官方给了一幅非常清晰的启动流程图&am…...

排查sshfs挂载失败的问题
#排查sshfs挂载失败的问题 写代码在Linux上运行,但是熟悉的IDE(比如VS code)在自己的电脑上,可以使用sshfs把linux上的目录挂载到本地,再用VScode打开即可,可以使用下面的命令: sshfs -odebug…...

【002】基于Spring Boot+Unipp的古诗词学习小程序【原创】
一.系统开发工具与环境搭建 1.系统设计开发工具 后端使用Java编程语言的Spring boot框架 项目架构:B/S架构 运行环境:win10/win11、jdk17 前端: 技术:框架Vue.js;UI库:ElementUI; 开发工具&…...

PageHelper循环依赖问题
1. 问题 2. 原因 项目中SpringBoot的版本为2.7.18。 SpringBoot2.6.x后不推荐使用循环依赖,也就是说从2.6.x版本开始,如果项目里还存在循环依赖,SpringBoot将拒绝启动! 3. 解决 去pageHelper github看,才看到新版本…...

k8s部署Kafka集群超详细讲解
准备部署环境 Kubernetes集群信息 NAMEVERSIONk8s-masterv1.29.2k8s-node01v1.29.2k8s-node02v1.29.2 Kafka:3.7.1版本,apche版本 Zookeeper:3.6.3版本 准备StorageClass # kubectl get sc NAME PROVISIONER RECLA…...

【数据采集工具】Sqoop从入门到面试学习总结
国科大学习生活(期末复习资料、课程大作业解析、大厂实习经验心得等): 文章专栏(点击跳转) 大数据开发学习文档(分布式文件系统的实现,大数据生态圈学习文档等): 文章专栏(点击跳转&…...

Matlab绘图总结(进阶)
本文在前文的基础上进一步整理画图方法 MATLAB画动图_CSDN博客 1. 基础图形绘制 1.1 rectangle(矩形,圆形) 在前文中,讲解了如何使用rectangle,rectangle本意是用来画矩形的,其中,Curvature可…...

QExcel 保存数据 (QtXlsxWriter库 编译)
QtXlsxWriter 是一个用于在 Qt 应用程序中创建和操作 Excel XLSX 文件的库。它提供了一个简单的 API,使开发者能够轻松地生成和修改 Excel 文件,而无需依赖 Microsoft Excel 或其他外部应用程序。支持初始化、写文件、读文件、格式设置、合并单元格、加粗…...

k8s ETCD数据备份与恢复
在 Kubernetes 集群中,etcd 是一个分布式键值存储,它保存着整个集群的状态,包括节点、Pod、ConfigMap、Secrets 等关键信息。因此,定期对 etcd 进行备份是非常重要的,特别是在集群发生故障或需要恢复数据的情况下。本文…...

【C语言】循环嵌套:乘法表
循环嵌套,外层循环执行一次,内层循环执行i次。分别控制 在循环的过程中加一层循环。 多层循环属于循环嵌套、嵌套循环 #include <stdio.h> #include <math.h> /* 功能:循环嵌套 乘法表 时间:2024年10月 地点…...

基于Java微信小程序的水果销售系统详细设计和实现(源码+lw+部署文档+讲解等)
详细视频演示 请联系我获取更详细的演示视频 项目运行截图 技术框架 后端采用SpringBoot框架 Spring Boot 是一个用于快速开发基于 Spring 框架的应用程序的开源框架。它采用约定大于配置的理念,提供了一套默认的配置,让开发者可以更专注于业务逻辑而不…...

从0开始深度学习(11)——多层感知机
前面介绍了线性神经网络,但是线性模型是有可能出错的,因为线性模型意味着是单调假设,但是现实中往往很复杂。例如,我们想要根据体温预测死亡率。 对体温高于37摄氏度的人来说,温度越高风险越大。 然而,对体…...

SQL语句查询
SQL语句查询 查询产生一个虚拟表 看到的是表形式显示的结果,但结果并不真正存储 每次执行查询只是从数据表中提取数据,并按照表的形式显示出来 查询语法 SELECT <列名> FROM <表名> [WHERE <查询条件表达式>] SELECT …...

OSI参考模型与TCP/IP模型
OSI参考模型 物理层 定义电压、接口、线缆标准、传输距离、传输介质等物理参数。数据链路层(确定范围里的某一个) MAC地址寻址网络层(确定一个范围) 网络地址层寻址、路由传输层(区分不同的程序) 数据分段…...

深度学习-26-基于PyTorch的多层感知机DNN
文章目录 1 代码分析1.1 加载数据集1.2 定义模型1.3 定义损失函数和优化器1.4 定义训练函数1.4.1 定义累加器Accumulator1.4.2 计算准确率accuracy1.4.3 评估函数evaluate_accuracy1.4.4 单轮训练函数train_epoch1.4.5 训练函数train1.2 执行训练2 整体代码3 参考附录1 代码分析…...