当前位置: 首页 > news >正文

python脚本补充

本文是对实用的 Python 小脚本_python写脚本-CSDN博客的一点补充。对简单脚本的一些操作上的优化。

###Utilities
###
###重命名文件名
import os
import tkinter as tk
from tkinter import filedialog, simpledialog, messageboxdef batch_rename():# 弹出文件夹选择对话框directory = filedialog.askdirectory()if not directory:return# 弹出输入对话框让用户输入前缀prefix = simpledialog.askstring("输入前缀", "请输入文件名前缀:")if not prefix:returntry:for count, filename in enumerate(os.listdir(directory)):dst = f"{prefix}{str(count)}.txt"src = os.path.join(directory, filename)dst = os.path.join(directory, dst)os.rename(src, dst)# 命名完成,弹出成功提示框messagebox.showinfo("完成", "文件重命名完成!")except Exception as e:# 出现错误,弹出错误提示框messagebox.showerror("错误", f"重命名过程中出现错误: {e}")#finally:# 关闭主窗口,结束程序#root.destroy()# 创建主窗口
# root = tk.Tk()
# root.withdraw()  # 隐藏主窗口
#
# # 调用重命名函数
# batch_rename()
#
# # 进入主事件循环
# root.mainloop()###
###文件备份
import shutil
import os
import timedef backup_files():try:# 获取脚本所在目录script_dir = os.path.dirname(os.path.abspath(__file__))# 构建 copy.txt 文件的路径config_file_path = os.path.join(script_dir, 'copy.txt')# 检查 copy.txt 文件是否存在,不存在则创建if not os.path.exists(config_file_path):with open(config_file_path, 'w', encoding='utf-8') as file:file.write("path/to/source/directory\npath/to/backup/directory")print(f"未找到 copy.txt 文件,已在 {script_dir} 下创建该文件,请在文件中填写源目录和备份目录路径。")return# 读取 copy.txt 文件内容with open(config_file_path, 'r', encoding='utf-8') as file:lines = file.readlines()if len(lines) < 2:raise ValueError("copy.txt 文件内容不足两行,请确保包含源目录和备份目录路径。")source_directory = lines[0].strip()backup_directory = lines[1].strip()# 检查源目录是否存在if not os.path.exists(source_directory):raise FileNotFoundError(f"源目录 {source_directory} 不存在。")# 检查备份目录是否存在,不存在则创建if not os.path.exists(backup_directory):os.makedirs(backup_directory)print(f"备份目录 {backup_directory} 不存在,已创建该目录。")# 创建备份文件夹timestamp = time.strftime("%Y%m%d%H%M%S")backup_folder = os.path.join(backup_directory, f"backup_{timestamp}")os.makedirs(backup_folder)# 复制文件for filename in os.listdir(source_directory):source_file = os.path.join(source_directory, filename)destination_file = os.path.join(backup_folder, filename)shutil.copy2(source_file, destination_file)print("文件备份成功!")except FileNotFoundError as e:print(f"文件或目录未找到: {e}")except ValueError as e:print(f"配置文件错误: {e}")except Exception as e:print(f"发生未知错误: {e}")# if __name__ == "__main__":
#     backup_files()###
###统计数据
import tkinter as tk
from tkinter import filedialog
import collectionsdef count_words_and_lines(file_path):try:word_counter = collections.Counter()line_count = 0with open(file_path, "r", encoding="utf-8") as file:for line in file:line_count += 1words = line.split()word_counter.update(words)total_word_count = sum(word_counter.values())return line_count, total_word_count, word_counterexcept FileNotFoundError:print(f"文件 {file_path} 未找到。")return 0, 0, collections.Counter()def select_file_and_count():root = tk.Tk()root.withdraw()file_path = filedialog.askopenfilename()if file_path:line_count, total_word_count, word_counter = count_words_and_lines(file_path)print(f"Lines: {line_count}, Total Words: {total_word_count}")print("每个单词的数量统计:")for word, count in word_counter.items():print(f"{word}: {count}")# 保存结果到 data statistics.txt 文件try:with open("data statistics.txt", "w", encoding="utf-8") as result_file:result_file.write(f"Lines: {line_count}, Total Words: {total_word_count}\n")result_file.write("每个单词的数量统计:\n")for word, count in word_counter.items():result_file.write(f"{word}: {count}\n")print("结果已保存到 data statistics.txt 文件。")except Exception as e:print(f"保存结果时出现错误: {e}")# if __name__ == "__main__":
#     select_file_and_count()###
###获取电脑硬件信息
import psutil
import tkinter as tk
from tkinter import messageboxdef get_computer_info():result = ""try:# CPU 信息cpu_freq = psutil.cpu_freq()cpu_count = psutil.cpu_count(logical=False)cpu_count_logical = psutil.cpu_count(logical=True)cpu_percent = psutil.cpu_percent(interval=1)result += f"CPU 信息:\n"result += f"  物理核心数: {cpu_count}\n"result += f"  逻辑核心数: {cpu_count_logical}\n"result += f"  当前频率: {cpu_freq.current} MHz\n"result += f"  使用率: {cpu_percent}%\n"except Exception as e:result += f"获取 CPU 信息时出错: {e}\n"try:# 内存信息memory_info = psutil.virtual_memory()swap_info = psutil.swap_memory()result += f"内存信息:\n"result += f"  总内存: {memory_info.total / (1024 * 1024 * 1024):.2f} GB\n"result += f"  已使用: {memory_info.used / (1024 * 1024 * 1024):.2f} GB\n"result += f"  可用内存: {memory_info.available / (1024 * 1024 * 1024):.2f} GB\n"result += f"  交换空间总大小: {swap_info.total / (1024 * 1024 * 1024):.2f} GB\n"result += f"  交换空间已使用: {swap_info.used / (1024 * 1024 * 1024):.2f} GB\n"except Exception as e:result += f"获取内存信息时出错: {e}\n"try:# 磁盘信息disk_info = psutil.disk_usage('/')disk_partitions = psutil.disk_partitions()result += f"磁盘信息:\n"result += f"  总容量: {disk_info.total / (1024 * 1024 * 1024):.2f} GB\n"result += f"  已使用: {disk_info.used / (1024 * 1024 * 1024):.2f} GB\n"result += f"  可用空间: {disk_info.free / (1024 * 1024 * 1024):.2f} GB\n"result += f"  分区信息:\n"for partition in disk_partitions:result += f"    设备: {partition.device}, 挂载点: {partition.mountpoint}, 文件系统: {partition.fstype}\n"except Exception as e:result += f"获取磁盘信息时出错: {e}\n"try:# 网络信息net_io_counters = psutil.net_io_counters()result += f"网络信息:\n"result += f"  发送字节数: {net_io_counters.bytes_sent}\n"result += f"  接收字节数: {net_io_counters.bytes_recv}\n"except Exception as e:result += f"获取网络信息时出错: {e}\n"# 保存结果到 cpu.txt 文件try:with open('cpu.txt', 'w') as file:file.write(result)except Exception as e:result += f"保存文件时出错: {e}\n"return result# if __name__ == "__main__":
#     root = tk.Tk()
#     root.withdraw()
#     info = get_computer_info()
#     messagebox.showinfo("电脑硬件信息", info)
#     root.mainloop()###
###获取电脑ip信息
import socket
import uuid
import platform
import subprocessdef get_ip_address():try:hostname = socket.gethostname()ip_address = socket.gethostbyname(hostname)return ip_addressexcept socket.gaierror:return "无法获取 IP 地址"def get_mac_address():mac = uuid.getnode()mac_hex = ':'.join(("%012X" % mac)[i:i + 2] for i in range(0, 12, 2))return mac_hexdef get_gateway():system = platform.system()try:if system == "Windows":result = subprocess.run(['ipconfig', '/all'], capture_output=True, text=True)output = result.stdoutfor line in output.splitlines():if "默认网关" in line:gateway = line.split(":")[-1].strip()return gatewayelif system == "Linux":result = subprocess.run(['ip', 'route'], capture_output=True, text=True)output = result.stdoutfor line in output.splitlines():if "default via" in line:gateway = line.split("via")[1].split()[0]return gatewayexcept Exception:passreturn "无法获取网关信息"def save_info_to_file(ip, mac, gateway):with open('computer.txt', 'w') as file:file.write(f"IP 地址: {ip}\n")file.write(f"MAC 地址: {mac}\n")file.write(f"网关信息: {gateway}\n")# if __name__ == "__main__":
#     ip = get_ip_address()
#     mac = get_mac_address()
#     gateway = get_gateway()
#     save_info_to_file(ip, mac, gateway)
#     print(f"IP 地址: {ip}")
#     print(f"MAC 地址: {mac}")
#     print(f"网关信息: {gateway}")###
###图片转换import tkinter as tk
from tkinter import filedialog, messagebox
from PIL import Image# def convert_image_format():
#     # 让用户选择输入图片
#     input_path = filedialog.askopenfilename(filetypes=[("Image files", "*.jpg;*.jpeg;*.png;*.bmp")])
#     if not input_path:
#         return
#
#     # 定义支持的图片格式
#     supported_formats = {
#         "JPEG": "JPEG",
#         "PNG": "PNG",
#         "BMP": "BMP"
#     }
#
#     # 创建一个新窗口用于选择输出格式
#     format_window = tk.Toplevel(root)
#     format_window.title("选择输出格式")
#
#     # 创建一个 StringVar 用于存储用户选择的格式
#     selected_format = tk.StringVar(format_window)
#     selected_format.set(list(supported_formats.keys())[0])
#
#     # 创建一个下拉菜单让用户选择输出格式
#     format_menu = tk.OptionMenu(format_window, selected_format, *supported_formats.keys())
#     format_menu.pack(pady=20)
#
#     def on_format_selected():
#         # 让用户选择保存路径
#         output_format = supported_formats[selected_format.get()]
#         output_path = filedialog.asksaveasfilename(defaultextension=f".{output_format.lower()}",
#                                                    filetypes=[(f"{output_format} files", f"*.{output_format.lower()}")])
#         if output_path:
#             try:
#                 img = Image.open(input_path)
#                 img.save(output_path, format=output_format)
#                 messagebox.showinfo("成功", "图片转换成功!")
#             except Exception as e:
#                 messagebox.showerror("错误", f"转换过程中出现错误: {e}")
#         format_window.destroy()
#
#     # 创建一个按钮用于确认选择的格式
#     select_button = tk.Button(format_window, text="确定", command=on_format_selected)
#     select_button.pack(pady=20)# 创建主窗口
# root = tk.Tk()
# root.title("图片格式转换工具")
#
# # 创建一个按钮用于触发转换操作
# convert_button = tk.Button(root, text="选择图片并转换", command=convert_image_format)
# convert_button.pack(pady=50)
#
# # 进入主事件循环
# root.mainloop()###
###文本内容搜索与替换脚本
import os
import tkinter as tk
from tkinter import filedialog, simpledialogdef search_and_replace():# 选择目录directory = filedialog.askdirectory()if not directory:return# 输入要搜索的文本search_text = simpledialog.askstring("输入搜索文本", "请输入要搜索的文本:")if not search_text:return# 输入要替换的文本replace_text = simpledialog.askstring("输入替换文本", "请输入要替换的文本:")if not replace_text:returnfor filename in os.listdir(directory):if filename.endswith(".txt"):file_path = os.path.join(directory, filename)try:with open(file_path, "r", encoding="utf-8") as file:content = file.read()new_content = content.replace(search_text, replace_text)with open(file_path, "w", encoding="utf-8") as file:file.write(new_content)except Exception as e:print(f"处理文件 {file_path} 时出错: {e}")# 创建主窗口
# root = tk.Tk()
# root.title("文本搜索与替换工具")
#
# # 创建按钮
# button = tk.Button(root, text="开始搜索与替换", command=search_and_replace)
# button.pack(pady=20)
#
# # 进入主事件循环
# root.mainloop()###
###获取网页内容脚本
import requests
from bs4 import BeautifulSoupdef get_webpage_content(url):try:response = requests.get(url)response.raise_for_status()  # 检查请求是否成功soup = BeautifulSoup(response.content, "html.parser")# 假设我们要获取网页中的所有标题标签titles = soup.find_all("h1")# 打开文件以写入模式with open('web.txt', 'w', encoding='utf-8') as file:for title in titles:title_text = title.textprint(title_text)# 将标题文本写入文件file.write(title_text + '\n')print("内容已成功保存到 web.txt 文件中。")except requests.RequestException as e:print(f"请求网页时出现错误: {e}")except Exception as e:print(f"发生未知错误: {e}")# if __name__ == "__main__":
#     # 获取用户输入的网址
#     url = input("请输入要抓取内容的网站 URL: ")
#     get_webpage_content(url)###
###文件分类脚本
import os
import shutil
from tkinter import Tk
from tkinter.filedialog import askdirectorydef classify_files(source_directories, destination_directory):for source_directory in source_directories:if not os.path.exists(source_directory):print(f"源目录 {source_directory} 不存在,跳过该目录。")continuefile_types = {}for filename in os.listdir(source_directory):file_path = os.path.join(source_directory, filename)if os.path.isfile(file_path):extension = os.path.splitext(filename)[1]if extension not in file_types:file_types[extension] = []file_types[extension].append(file_path)for extension, files in file_types.items():destination_folder = os.path.join(destination_directory, extension[1:])os.makedirs(destination_folder, exist_ok=True)for file in files:base_name, ext = os.path.splitext(os.path.basename(file))new_name = base_name + extnew_path = os.path.join(destination_folder, new_name)counter = 1while os.path.exists(new_path):new_name = f"{base_name}_{counter}{ext}"new_path = os.path.join(destination_folder, new_name)counter += 1shutil.move(file, new_path)def read_source_directories(file_path):if not os.path.exists(file_path):print(f"未找到 {file_path} 文件,已为你创建该文件。请在文件中添加待整理的文件夹目录,每行一个目录。")with open(file_path, 'w', encoding='utf-8') as f:passreturn []with open(file_path, 'r', encoding='utf-8') as file:return [line.strip() for line in file.readlines() if line.strip()]# if __name__ == "__main__":
#     # 读取待整理的文件夹目录
#     pending_file = "Pending processing"
#     source_directories = read_source_directories(pending_file)
#
#     if not source_directories:
#         print("未找到有效的源目录,程序结束。")
#     else:
#         # 让用户选择处理后的文件放置的目标目录
#         root = Tk()
#         root.withdraw()
#         destination_directory = askdirectory(title="请选择处理后的文件放置的目标目录")
#         root.destroy()
#
#         if destination_directory:
#             classify_files(source_directories, destination_directory)
#         else:
#             print("未选择目标目录,程序结束。")

相关文章:

python脚本补充

本文是对实用的 Python 小脚本_python写脚本-CSDN博客的一点补充。对简单脚本的一些操作上的优化。 ###Utilities ### ###重命名文件名 import os import tkinter as tk from tkinter import filedialog, simpledialog, messageboxdef batch_rename():# 弹出文件夹选择对话框d…...

【经验记录贴】活用shell,提高工作效率

背景 最近在做测试的时候&#xff0c;需要手动kill服务的进程&#xff0c;然后通过命令重启服务&#xff0c;再进行测试。每次重启都会涉及到下面三个命令的执行&#xff1a; 1&#xff09;检索进程ID $ ps -elf | grep programname root 1123 112 1234 0 0 0 0:00…...

出现 ERR_CERT_COMMON_NAME_INVALID | 301 302 重定向的解决方法

目录 前言1. 问题所示2. 原理分析3. 解决方法前言 🤟 找工作,来万码优才:👉 #小程序://万码优才/r6rqmzDaXpYkJZF 爬虫神器,无代码爬取,就来:bright.cn 1. 问题所示 执行代码时,出现如下提示: GET https://xxxx/admin-api/system...

解决本地浏览器访问服务器端语音识别项目显示“麦克风未授权”的问题

解决本地浏览器访问服务器端语音识别项目显示“麦克风未授权”的问题 在 chrome://flags 启用特殊权限&#xff08;不推荐长期启用&#xff09; 在浏览器地址栏输入&#xff1a; chrome://flags然后搜索&#xff1a; Insecure origins treated as secure 找到类似项&#xff…...

【数论】线性筛质数

线性筛质数 在之前的一篇筛质数的文章中只解释了埃式筛质数的方法&#xff0c;没有解释线性筛质数的方法 我们先看一下线性筛质数的代码 【例题】 给定一个正整数 n&#xff0c;请你求出 1∼n 中质数的个数。 输入格式 共一行&#xff0c;包含整数 n。 输出格式 共一行…...

视频孪生重构施工逻辑:智慧工地的数字化升级

当"智慧工地"概念在2017年首次写入《建筑业发展"十三五"规划》时&#xff0c;行业普遍将其等同于摄像头与传感器的简单叠加。十年数字浪潮冲刷下&#xff0c;智慧工地的内涵已发生本质跃迁&#xff1a;从工具层面的信息化改造&#xff0c;进化为基于视频数…...

【Lerobot】加载本地数据LeRobotDataset数据、读取并解析parquet

官方例子&#xff1a;https://github.com/huggingface/lerobot/blob/main/examples/1_load_lerobot_dataset.py https://github.com/NVIDIA/Isaac-GR00T/blob/main/getting_started/LeRobot_compatible_data_schema.md 使用SO100机械臂进行数据采集后&#xff0c;得到如下格式…...

卷积神经网络 CNN 模型介绍

卷积神经网络 CNN 模型介绍 一、经典CNN模型1. LeNet-5&#xff08;基础模型&#xff09;2. AlexNet3. VGGNet&#xff08;VGG16/VGG19&#xff09;4. ResNet&#xff08;残差网络&#xff09; 二、轻量化CNN模型1. MobileNet系列2. EfficientNet3. ShuffleNet 三、改进型CNN模…...

Vue —— 实用的工具函数

目录 响应式数据管理1. toRef 和 torefs2. shallowRef 和 shallowReactive3. markRaw 依赖追踪与副作用1. computed2. watch 和 watchEffect 类型判断与优化1. unref2. isRef 、isReactive 和 isProxy 组件通信与生命周期1. provide 和 inject2. nextTick 高级工具1. useAttrs …...

Langchain + Gemini API调用基本操作

本文参考Langchain中ChatGoogleGenerativeAI的官方文档&#xff0c;在本地的jupyter notebook中运行。 关于API的细节在官方文档最开头给出&#xff1a; 我们在使用时&#xff0c;可以选择model"gemini-2.0-flash-001"或者生成图片的ChatGoogleGenerativeAI(model“…...

软件线上故障复盘报告

软件线上故障复盘报告‌ ‌故障编号‌&#xff1a;INC-2024XXX ‌复盘日期‌&#xff1a;YYYY-MM-DD ‌参与人员‌&#xff1a;研发/运维/测试/产品/客服负责人 一、故障概况 1.1 基础信息 字段内容数据来源故障等级P0/P1/P2&#xff08;参考SLA分级标准&#xff09;运维告警…...

分享:批量提取图片文字并自动命名文件,ocr识别图片指定区域并重命名文件名工具,基于WPF和腾讯OCR识别的接口的视线方案

一、项目背景 在处理大量图片时,常常需要从图片中提取特定区域的文字信息,并依据这些信息对图片进行重命名。例如,在档案管理领域,大量纸质文件被扫描成图片后,需要从图片中提取关键信息(如文件编号、日期等)来重命名图片,以便后续的检索和管理;在电商领域,商家可能…...

SIMULIA-Abaqus有限元分析软件针对汽车行业的解决方案

汽车行业是Abaqus软件的一个重要应用领域&#xff0c;许多知名的汽车企业都是Abaqus的用户&#xff0c;本文为您重点介绍Abaqus针对汽车行业有哪些应用及其解决方案。 Abaqus是一款什么软件&#xff1a; Abaqus公司是世界知名的计算机仿真行业的软件公司&#xff0c;成立于197…...

linux下使用php修改php.ini的session.save_path无效的解决办法

linux下安装php的组合还是php-fpm和nginx&#xff0c;其实已经安装好了&#xff0c;网站已经能够跑起来了&#xff0c;但是遇到后台登录的时候验证码一直不对&#xff0c;看了下报错&#xff0c;session无法存储&#xff0c;于是新增了一个phpinfo文件&#xff0c;使用web查看下…...

脚本-QQ批量发送消息(图片和文字)

目录 代码 代码功能详解 注意事项 致谢 代码 import io import traceback import win32clipboard import pyautogui import pyperclip import win32gui # 替换为pywin32的正确模块名 import pandas as pd import time from PIL import Imageclass QQAutoMessage:def __in…...

高等数学A1 期末救济(导数)

基于song复习 闭区间上连续函数的性质 在闭区间里&#xff0c;f(x)连续> f(x)有界 导数 导数三种定义及不同写法 常用导数公式 可导→连续&#xff0c;但连续❎→可导 切线类问题求解 求某点切线方程与求过某点的切线方程 反函数求导法则 反函数的导数直接函数导数的导数 例…...

前端VUE框架理论与应用(7)

一、用 v-for 把一个数组对应为一组元素 我们可以用 v-for 指令基于一个数组来渲染一个列表。v-for 指令需要使用 item in items 形式的特殊语法,其中 items 是源数据数组,而 item 则是被迭代的数组元素的别名。 在 v-for 块中,我们可以访问所有父作用域的属性。v-for 还…...

argparse

argparse.add_argument 完全指南 &#x1f9f1; 基础篇&#xff1a;命令行参数解析入门 1. 模块初始化 import argparse# 创建参数解析器&#xff08;所有操作的基础容器&#xff09; parser argparse.ArgumentParser( progMyApp, # 程序名称&#xff08;默认从sys.argv[0]…...

力扣-hot100(移动零)

283. 移动零 简单 给定一个数组 nums&#xff0c;编写一个函数将所有 0 移动到数组的末尾&#xff0c;同时保持非零元素的相对顺序。 请注意 &#xff0c;必须在不复制数组的情况下原地对数组进行操作。 示例 1: 输入: nums [0,1,0,3,12] 输出: [1,3,12,0,0] 示例 2: 输…...

优先级队列的实模拟实现

优先级队列底层默认用的是vector来存储数据&#xff0c;实现了类似我们数据结构中学习过的堆的队列&#xff0c;他的插入和删除都是优先级高先插入和删除。下面我们来模拟实现它们常见的接口来熟悉优先级队列。 仿函数 在介绍优先级队列之前&#xff0c;我们先熟悉一个概念&a…...

ES6的`class`中,`super`关键字在构造函数和非构造函数中的行为有何不同?

在 ES6 的 class 中&#xff0c;super 关键字的行为在 构造函数 和 非构造函数&#xff08;普通方法&#xff09; 中有显著区别&#xff0c;主要体现在以下方面&#xff1a; 1. 构造函数中的 super 行为规则 必须显式调用&#xff1a; 在子类的构造函数中&#xff0c;必须先调…...

从 BI 与 SQL2API 的差异,看数据技术的多元发展路径

在数据驱动的商业世界里&#xff0c;商业智能&#xff08;BI&#xff09;与 SQL2API 如同两颗闪耀的星星&#xff0c;各自散发着独特的光芒。BI 早已在企业中广泛应用&#xff0c;成为数据分析领域的中流砥柱&#xff1b;而 SQL2API 作为新兴技术&#xff0c;虽潜力巨大&#x…...

UNet脑瘤医学影像分割训练实战(PyTorch 完整代码)

UNet是一种基于卷积神经网络&#xff08;CNN&#xff09;的医学影像分割模型&#xff0c;由Ronneberger等人于2015年提出。本文我们将简要介绍基于PyTorch框架&#xff0c;使用UNet模型在脑瘤医学影像分割数据集上进行训练&#xff0c;同时通过SwanLab监控训练过程&#xff0c;…...

MySQL事务隔离级别详解

MySQL事务隔离级别详解 1. 基本概念 1.1 什么是事务隔离级别&#xff1f; 事务隔离级别是数据库管理系统为了保证数据一致性&#xff0c;在多个事务并发访问时提供的不同级别的保护机制。 1.2 事务并发问题 脏读&#xff08;Dirty Read&#xff09;&#xff1a; 一个事务读…...

2025年K8s最新高频面试题

目录 Kubernetes的核心组件有哪些,各自作用是什么? Pod和Deployment的区别? Service有哪些类型,分别适用于什么场景? ConfigMap和Secret有什么区别? StatefulSet 和 Deployment 的主要区别是什么? 什么是 Ingress,有哪些常用实现方式? 如何限制 Kubernetes 中 Pod …...

CobaltStrike

概述 Cobalt Strike是⼀款基于java的渗透测试神器&#xff0c;常被业界⼈称为CS神器。⾃3.0以后已经不在使用 Metasploit框架⽽作为⼀个独⽴的平台使用&#xff0c;分为客户端与服务端&#xff0c;服务端是⼀个&#xff0c;客户端可以有 多个&#xff0c;⾮常适合团队协同作战…...

Web前端 (CSS篇)

什么是CSS&#xff1f; css(Cascading Style Sheets)是层叠样式表或级联样式表&#xff0c;是一组设置规则&#xff0c;用于控制web页面外观。 为什么使用CSS? CSS 用于定义网页的样式&#xff0c;包括针对不同设备和屏幕尺寸的设计和布局。 CSS 实例 body {background-col…...

回归测试中常见的问题:如何避免“越改越错“的陷阱

修复一个Bug&#xff0c;引入三个新Bug "我们只是改了个小功能&#xff0c;为什么整个系统都出问题了&#xff1f;"——这是回归测试失败的典型症状。据IBM研究显示&#xff0c;约40%的线上缺陷源自不充分的回归测试。本文将深入剖析回归测试中的常见陷阱&#xff0…...

红宝书第四十六讲:Node.js基础与API设计解析

红宝书第四十六讲&#xff1a;Node.js基础与API设计解析 资料取自《JavaScript高级程序设计&#xff08;第5版&#xff09;》。 查看总目录&#xff1a;红宝书学习大纲 一、Node.js基础概念 1. 流&#xff08;Streams&#xff09;的核心地位 12 Node.js的文件读写和网络通信依…...

IT运维常用的软件工具有哪些

IT运维常用的软件工具主要包括&#xff1a;监控工具、自动化运维工具、日志管理工具、网络管理工具、资产管理工具、服务台工具。这些工具分别用于保障IT系统稳定运行、提升运维效率、快速响应故障。其中&#xff0c;监控工具至关重要&#xff0c;它能实时监测系统运行状态、资…...

eplan许可证迁移到其他计算机

随着电气设计项目的不断扩大和变更&#xff0c;您可能需要将EPLAN许可证从一台计算机迁移到另一台计算机上。然而&#xff0c;在迁移过程中&#xff0c;确保您的软件始终保持最佳状态至关重要。本文将为您提供一份详尽的EPLAN许可证迁移指南&#xff0c;帮助您轻松完成这一操作…...

服务器部署静态页面

前言 需要先下载nginx&#xff0c;然后上传你的静态网页文件&#xff0c;最后设置nginx展示静态页面 安装nginx 第一步&#xff1a;在服务器上下载nginx服务 sudo dnf install nginx 第二步&#xff1a;启动nginx sudo systemctl start nginx 第三步&#xff1a;验证ngin…...

Spring boot 知识整理

一、SpringBoot 背景内容梳理 SpringBoot是一个基于Spring框架的开源框架&#xff0c;用于简化Spring应用程序的初始搭建和开发过程。它通过提供约定优于配置的方式&#xff0c;尽可能减少开发者的工作量&#xff0c;使得开发Spring应用变得更加快速、便捷和高效。 SpringBoot…...

软件测试面试题汇总---实时更新

1. java垃圾回收机制 2. 类为什么不能多继承&#xff0c;而接口可以 参考为什么类之间只能单继承不能多继承&#xff0c;接口之间可以多继承&#xff0c;类与接口之间可以多实现_内部可以多继承而接口可以多实现-CSDN博客 3. java面向对象的三大特性 继承、封装、多态 4. …...

2025海外代理IP测评:Bright Data,ipfoxy,smartproxy,ipipgo,kookeey,ipidea哪个值得推荐?

近年来&#xff0c;随着全球化和跨境业务需求的不断扩大“海外代理IP”逐渐成为企业和个人在多样化场景中的重要工具。无论是进行数据采集、广告验证、社交媒体管理&#xff0c;还是跨境电商平台运营&#xff0c;选择合适的代理IP服务商都显得尤为重要。然而&#xff0c;市场上…...

蓝桥杯 8. 分巧克力

分巧克力 原题目链接 问题描述 儿童节那天有 K 位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。 小明一共有 N 块巧克力&#xff0c;其中第 i 块是 Hᵢ Wᵢ 的长方形。为了公平起见&#xff0c;小明需要从这 N 块巧克力中切出 K 块巧克力分给小朋友们。 要求…...

计算机组成原理—————计算机运算方法精讲<3>反码及移码的表示

第一部分&#xff1a;反码表示法 这里我们直接给出整数反码的计算公式 我们实际计算中其实不用死记硬背公式&#xff0c;小编在这里介绍一下求反码的秒杀技 反码秒杀技&#xff1a;定号取反 第一步&#xff1a;确定符号位是0还是1 第二步&#xff1a;符号位不变&#xff0c…...

关于STM32创建工程文件启动文件选择

注意启动文件只要选择这几个 而不是要把所有都选上...

FC-4 mapping映射协议VI、hippi、fhcp、scma表示啥意思

FC-4 mapping映射协议VI、hippi、fhcp、scma表示啥意思 1.FC-4 Upper layer protocol协议映射层&#xff0c;定义了光纤通道和上层应用&#xff0c;包括FPGA/ARM 或者其他上层应用之间的接口。上层应用协议包括&#xff1a;串行scsi协议&#xff0c;fcp-scsi协议&#xff0c; f…...

15、stack、queue、deque的模拟实现

一、stack 1、stack的使用 请看这篇文章 2、stack的原理 这篇文章的栈原理讲的不错&#xff0c;并且有链式栈和顺序栈的创建&#xff0c;还有栈常使用的场景&#xff0c;没有数据结构基础的可以看&#xff0c;并且实现一下他的2种栈。 3、stack的实现 3.1、成员变量 这里…...

GR00T N1:面向通用类人机器人的开放基础模型

摘要 通用型机器人需要具备多功能的身体和智能的大脑。近年来&#xff0c;类人机器人的发展在构建人类世界中的通用自主性硬件平台方面展现出巨大潜力。一个经过大量多样化数据源训练的机器人基础模型&#xff0c;对于使机器人能够推理新情况、稳健处理现实世界的多变性以及快…...

保姆级教程:RK3588部署yolo目标检测模型

本文用到的板卡设备为鲁班猫4&#xff08;LubanCat-4&#xff09;&#xff0c;瑞芯微rk3588系列处理器。 官方文档写的挺详细了&#xff0c;但是版本太多不统一&#xff0c;而且涉及了多个代码仓库&#xff0c;稍显杂乱。本着最少代码原则&#xff0c;仅需下载一个代码仓库&am…...

【含文档+PPT+源码】物联网车辆GPS定位管理系统【

项目视频介绍&#xff1a; 毕业作品物联台云平台的设计与实现 课程简介&#xff1a; 本课程演示的是一款物联网车辆GPS定位管理系统&#xff0c;主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的 Java 学习者。 1.包含&#xff1a;项目源码、项目文档、数据库脚…...

热烈祝贺“中芯机械”选择使用订单日记

感谢潍坊中芯机械制造有限公司选择使用订单日记&#xff01; 潍坊中芯机械制造有限公司&#xff0c;成立于2023年&#xff0c;位于山东省潍坊市&#xff0c;是一家以从事生产、销售农业机械、汽车配件、机械电气设备等业务为主的企业。 在业务不断壮大的过程中&#xff0c;想…...

2025年保安员考试题库及答案

一、单选题 81、保安员张某和李某在火车站巡逻时&#xff0c;发现一男青年神色慌张&#xff0c;行为诡秘&#xff0c;这两名保安员识别这一可疑情况使用的方法是&#xff08;&#xff09;。 A.查问法 B.直接观察法 C.判断法 D.视觉判断法 答案&#xff1a;B 82、某天&…...

ADB的安装及抓取日志(1)

一、简介 ADB&#xff08;Android Debug Bridge&#xff09;是一个通用命令行工具&#xff0c;允许你与 Android 设备进行通信。它主要用于开发和调试目的&#xff0c;但也可用于其他多种功能&#xff0c;如安装应用、运行 shell 命令、查看日志等。ADB 是 Android SDK 的一部…...

用 Iris数据做决策树分析

文章目录 Iris数据的准备1.直接从sklearn.datasets 加载或转化成文件已备本地使用2.可以在https://archive.ics.uci.edu/dataset/53/iris下载 过程示例代码如下生成的决策树如下&#xff1a;生成的分析报告如下&#xff1a; 决策树模型分析报告1. 模型性能2. 特征重要性3. 决策…...

【Bluedroid】A2DP Sink播放流程源码分析(三)

AVCTP消息处理 avrc_msg_cback /packages/modules/Bluetooth/system/stack/avrc/avrc_api.cc /******************************************************************************** Function avrc_msg_cback** Description This is the callback function used…...

概念实践极速入门 - 常用的设计模式 - 简单生活例子

概念实践极速入门 - 常用的设计模式 - 简单生活例子 SOLID 五大设计原则的首字母缩写 单一职责原则 和 开闭原则 就省略啦, 这两个概念很简单, 为了写而写反而容易误导人~* 鼓励大家字面理解&#xff01; // 哎呀还是解释吧 单一(S): 单干一件事; 开闭(O): 拓展开放, 修改关…...

postgres 数据库信息解读 与 sqlshell常用指令介绍

数据库信息&#xff1a; sqlshell Server [localhost]: 192.168.30.101 Database [postgres]: Port [5432]: 5432 Username [postgres]: 用户 postgres 的口令&#xff1a; psql (15.12, 服务器 16.8 (Debian 16.8-1.pgdg1201)) 警告&#xff1a;psql 主版本15,服务器主版本为…...