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

基于 Python 的批量文件重命名软件设计与实现

        在工作过程中,经常有很多文件,想要对文件名进行批量改名,特此写了一个程序,以实现此功能。

一、批量文件重命名软件设计原理

(一)核心原理阐述

        批量文件重命名软件的核心原理在于运用操作系统提供的文件管理功能,借助编程手段达成对文件名称的批量修改。在这个软件里,我们采用 Python 的 Kivy 库来构建图形用户界面(GUI),同时利用 Python 的 os 和 shutil 库来处理文件操作。当用户选定特定文件夹后,软件会读取该文件夹下的所有文件,接着依据用户设定的重命名规则(像添加前缀、删除特定字符、编号排序等)对文件名进行修改,最后统一应用这些规则完成批量重命名操作。

        该软件的工作流程可以概括为以下几个关键步骤:

  1. 用户交互阶段:通过 GUI 界面获取用户输入的重命名规则和目标文件夹
  2. 文件处理阶段:读取目标文件夹中的文件列表并解析文件名结构
  3. 规则应用阶段:根据用户设置的规则生成新的文件名
  4. 执行操作阶段:预览或实际执行重命名操作,并反馈结果

(二)关键技术剖析

1. Kivy 库的应用

        Kivy 是一款功能强大的 Python 开源库,支持跨平台开发,能够在 Windows、Linux、macOS 等多种操作系统上运行。它采用现代的图形渲染引擎,支持硬件加速,能够创建流畅的用户界面。Kivy 的核心特点包括:

  • Widget 体系:所有 UI 元素都是 Widget 的子类,支持嵌套和复合组件
  • 布局管理器:提供多种布局方式(BoxLayout、GridLayout、FloatLayout 等)
  • 事件系统:基于触摸的事件处理模型,支持多点触控
  • 属性绑定:使用bind方法实现属性的自动同步更新
  • 资源管理:支持字体、图片等资源的加载和管理

        在本软件中,Kivy 主要用于构建用户界面,包括文件选择区域、重命名规则设置面板和文件列表显示等功能

2. 文件操作技术

        Python 的 os 库和 shutil 库提供了丰富的文件和目录操作功能:

  • os.listdir():获取指定目录下的所有文件和文件夹列表
  • os.path.splitext():分离文件名和扩展名
  • os.rename():重命名文件或目录
  • os.path.isfile():判断路径是否为文件
  • shutil 库:提供高级文件操作,如复制、移动等(本软件主要使用 os.rename)

        这些功能是实现批量文件重命名的基础,通过组合使用这些函数,软件能够高效地处理大量文件的重命名操作。

3. 正则表达式的使用

        在处理复杂的文本替换需求时,正则表达式是一个非常有用的工具。Python 的 re 库提供了正则表达式功能,本软件中主要用于:

  • 删除括号内编号:使用正则表达式\(\d+\)匹配类似 "(1)"、"(2)" 的编号并删除
  • 自定义规则:在自定义重命名函数中可以使用正则表达式进行复杂的文本处理

        正则表达式的使用使得软件能够处理各种复杂的文件名模式,提高了重命名规则的灵活性和强大性。

二、软件功能模块构成

(一)文件选择模块

        该模块的主要功能是让用户能够选择要进行文件操作的目标文件夹。用户可以通过点击 "浏览" 按钮,在弹出的文件浏览器中选择所需的文件夹,软件会自动获取该文件夹的路径并显示在界面上。

        核心功能包括:

  • 打开系统文件选择对话框
  • 递归设置文件选择器中的中文字体支持
  • 处理用户选择的文件夹路径并更新 UI

(二)文件预览模块

        文件预览模块会将用户所选文件夹中的所有文件以列表的形式展示出来。列表包含三个主要列:选择框原文件名新文件名(根据当前规则生成)。用户在进行重命名操作之前,能够清楚地看到当前文件夹下的文件情况以及重命名后的效果,为后续的重命名操作提供参考。

        关键特性:

  • 动态加载文件夹中的文件列表
  • 实时显示原文件名和根据当前规则生成的新文件名
  • 支持选择或取消选择单个文件
  • 提供清晰的表头和分隔线,增强可读性

(三)重命名规则设定模块

        此模块为用户提供了多种重命名规则选项,用户可以根据自己的需求进行选择和设置:

1. 添加前缀

        用户可以输入想要添加的前缀内容,软件会将该前缀添加到每个文件名的前面。例如,输入前缀 "IMG_",则文件 "1.jpg" 将被重命名为 "IMG_1.jpg"。

2. 添加后缀

        用户输入后缀内容后,软件会把后缀添加到每个文件名的后面。例如,输入后缀 "_backup",则文件 "1.jpg" 将被重命名为 "1_backup.jpg"。

3. 替换文本

        用户可以指定要替换的字符和替换后的字符,软件会在所有文件名中查找并替换这些字符。例如,将空格替换为下划线,"photo 1.jpg" 将变为 "photo_1.jpg"。

4. 删除字符

        用户输入要删除的字符,软件会将文件名中包含的这些字符删除。例如,删除 "_old",则 "photo_old.jpg" 将变为 "photo.jpg"。

5. 编号排序

        软件会按照一定的顺序为文件添加编号,用户可以设置编号的起始值、步长等参数。例如,起始值为 1,步长为 1,位数为 3,则文件名将添加 "001_"、"002_" 等前缀。

6. 删除括号内编号

        这是一个特殊的删除功能,使用正则表达式匹配并删除类似 "(1)"、"(2)" 的编号,例如 "文件 (1).txt" 将变为 "文件.txt"。

7. 修改后缀

        用户可以选择是否修改文件的后缀名,并指定新的后缀名,软件会对所有文件的后缀进行相应的修改。

8. 自定义规则

        对于有特殊需求的用户,可以通过编写自定义的 Python 代码来实现独特的重命名规则。自定义函数需要接收文件名和扩展名作为参数,并返回新的文件名。

(四)操作执行模块

        操作执行模块主要负责执行用户设定的重命名操作:

  • 预览功能:在实际执行重命名前,显示重命名后的效果,让用户确认
  • 确认对话框:执行前再次向用户确认操作信息,避免误操作
  • 进度显示:执行过程中显示操作进度,让用户了解当前状态
  • 结果反馈:操作完成后,显示成功和失败的统计信息及详细错误

三、代码详细解析

(一)整体架构

        整个软件的代码结构清晰,采用了面向对象的设计思想,主要由以下几个部分组成:

  1. 字体设置模块setup_fonts函数负责设置中文字体支持
  2. 主应用类FileRenameApp类继承自 Kivy 的 App 类,是整个应用的核心
  3. 界面布局方法:负责创建和管理 UI 界面
  4. 文件操作方法:处理文件选择、加载和显示
  5. 重命名规则方法:根据用户设置生成新文件名
  6. 操作执行方法:处理预览和实际重命名操作
  7. 辅助方法:提供对话框显示、文件选择等辅助功能

        以下是完整的代码:

import os
import re
import shutil
from datetime import datetime
from kivy.app import App
from kivy.clock import Clock
from kivy.core.text import LabelBase
from kivy.core.window import Window
from kivy.resources import resource_add_path, resource_find
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.button import Button
from kivy.uix.checkbox import CheckBox
from kivy.uix.filechooser import FileChooserListView
from kivy.uix.gridlayout import GridLayout
from kivy.uix.label import Label
from kivy.uix.popup import Popup
from kivy.uix.progressbar import ProgressBar
from kivy.uix.scrollview import ScrollView
from kivy.uix.textinput import TextInput
from kivy.uix.togglebutton import ToggleButton
from kivy.uix.tabbedpanel import TabbedPanel, TabbedPanelItem
from kivy.uix.spinner import Spinner
from kivy.uix.slider import Slider
from kivy.uix.image import Image
from kivy.graphics import Color, Rectangle# 确保中文显示的字体处理
def setup_fonts():"""设置中文字体支持"""font_name = "NotoSansCJK"# 尝试查找系统中的Noto Sans CJK字体system_fonts = ["/System/Library/Fonts/PingFang.ttc",  # macOS"/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc",  # Linux"C:/Windows/Fonts/NotoSansCJK-Regular.ttc",  # Windows"C:/Windows/Fonts/simhei.ttf",  # Windows 备用"C:/Windows/Fonts/simsun.ttc",  # Windows 宋体]font_path = Nonefor path in system_fonts:if os.path.exists(path):font_path = pathbreak# 如果找不到系统字体,则使用相对路径(假设字体文件在应用目录中)if not font_path:font_path = resource_find("NotoSansCJK-Regular.ttc")if not font_path:print("警告: 未找到Noto Sans CJK字体,中文可能无法正确显示")return None# 注册字体try:LabelBase.register(name=font_name, fn_regular=font_path)return font_nameexcept Exception as e:print(f"字体注册失败: {e}")return None# 设置中文字体
chinese_font = setup_fonts()
if not chinese_font:chinese_font = "Roboto"  # 默认回退字体class FileRenameApp(App):def build(self):# 设置窗口标题和大小Window.size = (900, 600)self.title = '批量文件重命名工具'# 创建主布局main_layout = BoxLayout(orientation='vertical', padding=10, spacing=10)# 创建顶部的文件选择区域file_select_layout = BoxLayout(orientation='horizontal', size_hint=(1, 0.1))self.file_path_input = TextInput(multiline=False, hint_text='请选择文件夹', font_name=chinese_font,font_size=14  # 设置字体大小)browse_button = Button(text='浏览...', size_hint=(0.2, 1), font_name=chinese_font,font_size=14  # 设置字体大小)browse_button.bind(on_press=self.browse_folder)file_select_layout.add_widget(self.file_path_input)file_select_layout.add_widget(browse_button)# 创建标签页面板self.tab_panel = TabbedPanel(do_default_tab=False, size_hint=(1, 0.7))# 文件列表标签页files_tab = TabbedPanelItem(text='文件列表', font_name=chinese_font,font_size=14  # 设置标签页字体大小)self.file_list_layout = GridLayout(cols=1, spacing=5, size_hint_y=None)self.file_list_layout.bind(minimum_height=self.file_list_layout.setter('height'))scroll_view = ScrollView()scroll_view.add_widget(self.file_list_layout)files_tab.add_widget(scroll_view)# 重命名规则标签页rules_tab = TabbedPanelItem(text='重命名规则', font_name=chinese_font,font_size=14  # 设置标签页字体大小)# 将规则布局放在ScrollView中,确保内容可滚动rules_scroll_view = ScrollView(size_hint=(1, 1), size=(2000, 400))self.rules_layout = self.create_rules_layout()rules_scroll_view.add_widget(self.rules_layout)rules_tab.add_widget(rules_scroll_view)# 添加标签页到面板self.tab_panel.add_widget(files_tab)self.tab_panel.add_widget(rules_tab)# 创建底部的操作按钮区域action_layout = BoxLayout(orientation='horizontal', size_hint=(1, 0.1), spacing=10)preview_button = Button(text='预览重命名', size_hint=(0.3, 1), font_name=chinese_font,font_size=14  # 设置字体大小)preview_button.bind(on_press=self.preview_rename)execute_button = Button(text='执行重命名', size_hint=(0.3, 1), font_name=chinese_font,font_size=14  # 设置字体大小)execute_button.bind(on_press=self.execute_rename)clear_button = Button(text='清空列表', size_hint=(0.3, 1), font_name=chinese_font,font_size=14  # 设置字体大小)clear_button.bind(on_press=self.clear_files)action_layout.add_widget(preview_button)action_layout.add_widget(execute_button)action_layout.add_widget(clear_button)# 添加所有组件到主布局main_layout.add_widget(file_select_layout)main_layout.add_widget(self.tab_panel)main_layout.add_widget(action_layout)# 存储文件信息的列表self.files = []self.original_files = []return main_layoutdef create_rules_layout(self):"""创建重命名规则设置界面"""# 创建一个垂直布局(主布局)rules_layout = BoxLayout(orientation='vertical', spacing=15, padding=10, size_hint_y=None)rules_layout.bind(minimum_height=rules_layout.setter('height'))# 添加前缀设置区域prefix_section = self.create_setting_section("添加前缀")prefix_layout = BoxLayout(orientation='horizontal', spacing=10, size_hint_y=None, height=40)self.prefix_checkbox = CheckBox(active=False, size_hint=(0.1, 1))self.prefix_text = TextInput(multiline=False, disabled=True, font_name=chinese_font,font_size=14,size_hint=(0.9, 1),hint_text='请输入前缀')self.prefix_checkbox.bind(active=lambda instance, value: self.prefix_text.set_disabled(not value))prefix_layout.add_widget(self.prefix_checkbox)prefix_layout.add_widget(self.prefix_text)prefix_section.add_widget(prefix_layout)rules_layout.add_widget(prefix_section)# 添加后缀设置区域suffix_section = self.create_setting_section("添加后缀")suffix_layout = BoxLayout(orientation='horizontal', spacing=10, size_hint_y=None, height=40)self.suffix_checkbox = CheckBox(active=False, size_hint=(0.1, 1))self.suffix_

相关文章:

基于 Python 的批量文件重命名软件设计与实现

在工作过程中,经常有很多文件,想要对文件名进行批量改名,特此写了一个程序,以实现此功能。 一、批量文件重命名软件设计原理 (一)核心原理阐述 批量文件重命名软件的核心原理在于运用操作系统提供的文件管理功能,借助编程手段达成对文件名称的批量修改。在这个软件里,…...

【深度学习新浪潮】什么是上下文工程?

什么是上下文工程? 上下文工程(Context Engineering) 是指通过设计、优化与大语言模型(LLM)交互时的输入内容(即“上下文”),引导模型生成更符合预期、更精准回答的系统性方法。这里的“上下文”通常包括 提示词(Prompt)、示例(Few-Shot Examples)、历史对话记录、…...

逆向入门(8)汇编篇-rol指令的学习

还是那个题,这回又碰到个循环左移,有挺多操作方法之前都没有系统的学,用到的时候再看看感觉还挺好,不耽误事 0x00 基本介绍 ROL(Rotate Left): 循环左移,它有两个操作数: 第一个操作数是目标操作数&#…...

Fisco Bcos学习 - 开发第一个区块链应用

文章目录 一、前言二、业务场景分析:简易资产管理系统三、智能合约设计与实现3.1 存储结构设计3.2 接口设计3.3 完整合约代码 四、合约编译与Java接口生成五、SDK配置与项目搭建5.1 获取Java工程项目5.2 项目目录结构5.3 引入Web3SDK5.4 证书与配置文件 六、业务开发…...

黑马python(十六)

目录: 1.JSON数据格式的转换 2.pyecharts模块简介 3.pyecharts入门使用 4.数据准备 5.生成折线图 1.JSON数据格式的转换 2.pyecharts模块简介 官方网站: 画廊网站:有更多的图标形式 测试是否安装 3.pyecharts入门使用 运行会生成一个html的文件&a…...

完成国产化替代!昆明卷烟厂用时序数据库 TDengine 重塑工业时序数据平台

小T导读:昆明卷烟厂作为红云红河烟草(集团)有限责任公司的重要组成部分,是集团卷烟生产的核心工厂。早期在建设制造执行系统(MES)时,其采用了 Wonderware 平台的时序数据存储功能模块&#xff0…...

50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | BackgroundSlider(背景滑块)

&#x1f4c5; 我们继续 50 个小项目挑战&#xff01;—— BackgroundSlider组件 仓库地址&#xff1a;https://github.com/SunACong/50-vue-projects 项目预览地址&#xff1a;https://50-vue-projects.vercel.app/ 使用 Vue 3 的 Composition API 和 <script setup> …...

Wpf的Binding

前言 wpf的Binding就像一个桥梁&#xff0c;它的作用就是连接逻辑层与界面层&#xff0c;既能够把逻辑层的数据搬到界面层展示&#xff0c;又能将界面层的数据更改后传递到逻辑层&#xff0c;Binding的数据来源就是Binding的源&#xff0c;数据展示的地方就是Binding的目标。 …...

Redis—持久化

持久化 在mysql当中&#xff0c;有4个比较关心的特性&#xff0c;分别是原子性、一致性、隔离性和持久性。这里的持久性和持久化是一回事。我们该如何判断是否具有持久性呢&#xff1f;答案就是看重启进程或者主机之后&#xff0c;数据是否存在。当我们把数据存储在硬盘上是就…...

Spring Boot中日志管理与异常处理

以下是Spring Boot中日志管理与异常处理的系统化实践指南&#xff0c;结合最佳实践与核心配置&#xff0c;确保应用健壮性与可维护性。 &#x1f4ca; 一、日志管理核心配置 默认框架与级别控制 Logback 是Spring Boot默认日志框架&#xff0c;通过application.yml快速配置&…...

基于MATLAB的BP神经网络的心电图分类方法应用

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档&#xff09;&#xff0c;如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 心电图&#xff08;ECG&#xff09;是临床诊断心血管疾病的重要工具&#xff0c;能够反映心脏电活动的周期性变化。…...

【笔记】Docker 配置阿里云镜像加速(公共地址即开即用,无需手动创建实例)

2025年06月25日记 【好用但慎用】Windows 系统中将所有 WSL 发行版从 C 盘迁移到 非系统 盘的完整笔记&#xff08;附 异常处理&#xff09;-CSDN博客 【笔记】解决 WSL 迁移后 Docker 出现 “starting services: initializing Docker API Proxy: setting up docker ap” 问题…...

Java 中LinkedList 总结

406.根据身高重建队列 力扣题目链接(opens new window) 假设有打乱顺序的一群人站成一个队列&#xff0c;数组 people 表示队列中一些人的属性&#xff08;不一定按顺序&#xff09;。每个 people[i] [hi, ki] 表示第 i 个人的身高为 hi &#xff0c;前面 正好 有 ki 个身高…...

微信小程序 / UNIAPP --- 阻止小程序返回(顶部导航栏返回、左 / 右滑手势、安卓物理返回键和调用 navigateBack 接口)

目录 理解page-container的原理 设置禁止点击遮盖层关闭&#xff1f; 阻止左滑返回 理解page-container的原理 page-container组件的所有属性&#xff0c;最重要的是show值。在页面上引入这个组件后&#xff0c;若show值为true&#xff0c;页面上所有各种方式触发的返回操作…...

Linux基本指令篇 —— mv指令

在Windows中我们经常使用CtrlX和CtrlV将一个地方的文件或目录移动到另一个地方&#xff0c;我们若是要在Linux当中完成此操作&#xff0c;则需要使用mv指令。mv 是 Linux 系统中用于移动或重命名文件和目录的基本命令之一&#xff0c;是 "move" 的缩写。下面将详细介…...

基于STM32的智能节能风扇的设计

基于STM32的智能节能风扇的设计 内容:1.摘要 本设计旨在解决传统风扇能耗高、功能单一的问题&#xff0c;提出一种基于STM32的智能节能风扇。通过结合温度传感器、人体红外传感器等多种传感器&#xff0c;利用STM32微控制器实现对风扇的智能控制。经过实际测试&#xff0c;该智…...

HCIA-IP路由基础

前言&#xff1a;本博客仅作记录学习使用&#xff0c;部分图片出自网络&#xff0c;如有侵犯您的权益&#xff0c;请联系删除 ​ 本篇笔记是根据B站上的视频教程整理而成&#xff0c;感谢UP主的精彩讲解&#xff01;如果需要了解更多细节&#xff0c;可以参考以下视频&#xf…...

Linux 内存管理之page cache

文章目录 一、page cache1.1 File-backed pages和Anonymous pages1.2 page cache/slab cache1.3 读/写路径1.4 脏页回写1.5 drop_caches1.6 时间局部性与空间局部性1.7 Page Cache 的两种类型1.8 关键数据结构 二、Page Cache 的产生2.1 Buffered I/O&#xff08;标准 I/O&…...

uniApp实战四:网络请求封装

文章目录 1.最终效果预览2.请求封装3.创建config配置文件4.创建api请求5.页面调用 说明&#xff1a;当前笔记基于Vue3开发&#xff0c;HbuilderX版本4.66 1.最终效果预览 2.请求封装 在util/request.js下创建js文件&#xff0c;代码如下 import config from /configconst tim…...

sentinel 自定义 dashboard 用户名密码

默认情况下&#xff0c;sentinel dashboard 用户名密码为 sentinel / sentinel &#xff0c;这里我使用重写 镜像的方式&#xff1a; // 定义 Dockerfile $ cat Dockerfile # 基于现有 Sentinel Dashboard 镜像 FROM bladex/sentinel-dashboard:1.8.4# 重新定义 ENTRYPOINT&…...

Fisco Bcos学习 - 搭建星形拓扑组网

文章目录 一、前言二、环境准备与依赖安装2.1 系统要求2.2 依赖安装 三、星形拓扑设计与节点规划四、使用build_chain.sh构建星形拓扑4.1 创建操作目录并获取脚本4.2 生成星形拓扑配置文件4.3 执行构建命令4.4 查看生成的节点文件 五、启动节点与共识验证5.1 启动所有节点5.2 查…...

深度学习入门--(二)感知机

一.感知机是什么 简单的输入和输出&#xff0c;感觉&#xff08;输入&#xff09;&#xff0c;知道&#xff08;输出&#xff0c;作出反应&#xff09; 二.简单逻辑电路 2.1与门 import numpy as np #AND def AND(X1,X2):w1,w2,thera0.5,0.5,0.7tmpX1*w1X2*w2if tmp>the…...

LeetCode 3298.统计重新排列后包含另一个字符串的子字符串数目2

给你两个字符串 word1 和 word2 。 如果一个字符串 x 重新排列后&#xff0c;word2 是重排字符串的 前缀 &#xff0c;那么我们称字符串 x 是 合法的 。 请你返回 word1 中 合法 子字符串 的数目。 注意 &#xff0c;这个问题中的内存限制比其他题目要 小 &#xff0c;所以你…...

【nRF52832】【环境搭建 1】【ubuntu下搭建nRF52832开发环境】

本文讲述如何在 ubuntu 22.04 下开发 nRF52832. host 环境说明: $ uname -a Linux leo 6.8.0-60-generic #63~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Tue Apr 22 19:00:15 UTC 2 x86_64 x86_64 x86_64 GNU/Linux1. 安装软件 sudo apt install gcc-arm-none-eabisudo apt-get i…...

Django

1. Django 和 Tornado 的关系 Django 是一个高级 Python Web 框架&#xff0c;它鼓励快速开发和干净、实用的设计。Django 遵循 MVC&#xff08;模型-视图-控制器&#xff09;设计模式的一个变种&#xff0c;称为 MTV&#xff08;模型-模板-视图&#xff09;。Django 框架提供…...

51c嵌入式~CAN~合集2

我自己的原文哦~ https://blog.51cto.com/whaosoft/14016935 一、CAN总线常见信号干扰问题 定位干扰原因 当总线有干扰时&#xff0c;有经验的工程师能够迅速定位&#xff0c;但是对于新手来说却很麻烦。 造成总线干扰的原因有很多&#xff0c;比如通过电磁辐射耦合到通…...

【iOS】iOS崩溃总结

【iOS】iOS崩溃总结 一、前言 之前写了一篇博文《【Flutter】程序报错导致的灰屏总结》&#xff0c;浏览量、收藏率和点赞量还挺高&#xff0c;还被收录了&#xff0c;就想着总结一下iOS崩溃&#xff0c;这个也是在iOS面试中经常被问到的。 在 iOS 开发过程中&#xff0c;导致…...

npm 报错:“无法加载文件 ...npm.ps1,因为在此系统上禁止运行脚本” 解决方案(附执行策略说明)

在使用 npm 命令时&#xff0c;部分 Windows 用户可能会遇到如下错误&#xff1a; npm : 无法加载文件 D:\nvm4w\nodejs\npm.ps1&#xff0c;因为在此系统上禁止运行脚本。有关详细信息&#xff0c;请参阅 https://go.microsoft.com/fwlink/?LinkID135170 中的 about_Executi…...

AES加密:为你的PDF文档加上一道钢铁防线

在数字化时代&#xff0c;确保敏感数据的安全性至关重要。加密技术在保护信息免受未经授权访问方面起着关键作用。而在众多加密标准中&#xff0c;AES&#xff08;高级加密标准&#xff09;因其强大的安全性和广泛的应用而脱颖而出。那么&#xff0c;AES加密如何应用到PDF文档中…...

2025学年湖北省职业院校技能大赛 “信息安全管理与评估”赛项 样题卷(一)

2025学年湖北省职业院校技能大赛 “信息安全管理与评估”赛项 样题卷&#xff08;一&#xff09; 第一部分&#xff1a;网络平台搭建与设备安全防护任务书DCRS:DCFW:DCWS:WAF: 第二部分&#xff1a;网络安全事件响应、数字取证调查、应用程序安全任务书任务 1&#xff1a;应急响…...

1688商品发布API:自动化上架与信息同步

一、1688商品发布API的核心功能与技术架构 1.1 API功能全景 1688商品发布API是1688开放平台的核心组件之一&#xff0c;支持商品信息的自动化发布、编辑、上下架及库存同步。其核心功能包括&#xff1a; 商品信息管理&#xff1a;支持商品标题、描述、价格、库存、SKU&#…...

鸿蒙ArkUI---基础组件Tabs(Tabbar)

基础页面组件 Tabs 作用&#xff1a; 快速创建Tabbar 个人理解&#xff1a; 快速的创建Tabar。 效果图&#xff1a; 代码&#xff1a;interface TabItem {icon: Resource; //未选中activeIcon: Resource; //选中name: string; //文字 }Entry Component struct Index {// st…...

50. Pow(x, n)快速幂算法

实现 pow(x, n) &#xff0c;即计算 x 的整数 n 次幂函数&#xff08;即&#xff0c;xn &#xff09;。此函数应将 x 作为浮点数&#xff08;意味着它可以是十进制数&#xff09;和 n 作为整数&#xff08;可以是正数、负数或零&#xff09;一起使用。 快速幂&#xff08;Expo…...

Python函数

三.函数进阶 0.定义 函数三要素&#xff1a;函数名&#xff0c;参数&#xff0c;返回值&#xff0c;其中只有函数名是必须要的&#xff0c;参数&#xff0c;返回值可以没有 语法&#xff1a; def 函数名&#xff08;参数&#xff09;&#xff1a; 函数体 return 返回值 1.…...

7.Spring框架

# spring框架Spring3.0开启了纯注解开发模式&#xff0c;使用Java类替代配置文件&#xff0c;开启了Spring快速开发赛道## 为什么要使用 **Spring** 框架&#xff1f;​ Spring 是一个轻量级应用框架&#xff0c;它提供了 IoC 和 AOP 这两个核心的功能。它的核心目的是为了…...

计算机网络-----详解HTTP协议

✏️1. 什么是HTTP HTTP (全称为 “超⽂本传输协议”) 是⼀种应⽤⾮常⼴泛的应⽤层协议&#xff08;所谓 “超⽂本” 的含义, 就是传输的内容不仅仅是⽂本(⽐如 html, css 这个就是⽂本), 还可以是⼀些其他的资源, ⽐如图⽚, 视频, ⾳频等⼆进制的数据&#xff09;。 HTTP 诞⽣…...

解决npm安装依赖报错ERESOLVE unable to resolve dependency tree

在使用 npm 安装项目依赖时&#xff0c;有时会遇到错误信息 “npm ERR! code ERESOLVE”&#xff0c;该错误通常发生在依赖版本冲突或者依赖解析问题时。本文将详细介绍出现这个错误的原因&#xff0c;并提供解决方法&#xff0c;确保正确安装项目依赖并避免该错误的发生。 一…...

微信小程序安卓手机输入框文字飘出输入框

最近在开发微信小程序遇到一个问题&#xff0c;安卓手机输入框文字飘出输入框&#xff0c;但是ios系统的手机则正常。 使用情景&#xff1a;做了一个弹窗&#xff0c;弹窗内是表单&#xff0c;需要填写一些信息&#xff0c;但是在填写信息时光标不显示&#xff0c;输入的内容飘…...

python网络自动化-数据格式与数据建模语言

数据格式 在Python网络运维自动化最基本是JSON、YAML和XML这3种数据格式。除了这3种常用的数据格式&#xff0c;还有一种深受网络工程师喜爱且在网络运维自动化中常用的数据承载方式——表格 需要注意的是JSON的键必须用双引号包裹&#xff0c;JSON的对象数据键值对的值和数组…...

C++ 中的 atan2 函数:深入解析与应用

在 C 编程中&#xff0c;数学计算是许多应用场景的核心&#xff0c;例如几何问题、物理模拟和游戏开发等。atan2 函数作为数学库中的一个重要工具&#xff0c;提供了比普通反正切函数更强大的功能。本文将深入解析 atan2 函数的原理、使用方法以及实际应用场景&#xff0c;并通…...

云计算-Azure Functions :构建事件驱动的云原生应用报告

云计算导论 课程研究报告 Azure Functions &#xff1a;构建事件驱动的云原生应用 摘要&#xff1a; Azure Functions 是一种无服务器解决方案&#xff0c;是由微软 Azure 平台提供的&#xff0c;可以使用户专注于业务逻辑&#xff0c;减少代码的编写&#xff0c;减少需要维护…...

【笔记——李沐动手学深度学习】2.3 线性代数

2.3.1 标量 标量由只有一个元素的张量表示。 下面的代码将实例化两个标量&#xff0c;并执行一些熟悉的算术运算&#xff0c;即加法、减、乘法、除法和指数。 2.3.2 向量 人们通过一维张量表示向量。一般来说&#xff0c;张量可以具有任意长度&#xff0c;取决于机器的内存限…...

多个 Job 并发运行时共享配置文件导致上下文污染,固化 Jenkins Job 上下文

基于 context.py 固化 Jenkins Job 上下文的完整方案&#xff0c;适用于你当前的工作流&#xff08;Python Jenkins Pipeline&#xff09;&#xff0c;解决&#xff1a; 多个 Job 并发运行时共享配置文件导致上下文污染&#xff1b;读取环境变量或 JSON 文件时被其他 Job 修改…...

github 上的php项目

github 上的php项目 项目的网址 &#xff08;Loong1996/LikeGirlSite: 情侣网站、情侣网页、恋爱记录网站&#xff09; # 修改 # admin/Config_DB.php//localhost 为数据库地址 一般使用默认的即可 或&#xff08;127.0.0.1&#xff09; $db_address "mysql_php";/…...

防火墙快速管理软件,66K超小巧

软件介绍 今天为大家推荐一款轻量级的Windows防火墙管理工具&#xff0c;这款工具能帮助用户快速开启或关闭系统防火墙功能&#xff0c;操作比系统原生设置更加便捷高效。 软件优势 相比通过系统设置层层点击的操作方式&#xff0c;这款仅66KB大小的微型工具只需单击按钮…...

入门级STM32F103C8T6无人机遥控(原理图)

一、STM32主控电路 一、STM32 主控电路 把 STM32 想象成 “机器人的大脑”&#xff0c;核心电路是 “大脑的基础保障”&#xff1a;让大脑有电、有心跳&#xff08;时钟 &#xff09;、能复活&#xff08;复位 &#xff09;。 1. 电源引脚&#xff08;VDD、VDDA、VSS 等 &#…...

无人机灯光驱动模块技术解析

一、运行方式 1. 核心流程&#xff1a; 指令接收&#xff1a;灯光控制模块通过无线通信链路&#xff08;如WiFi, 数传电台&#xff0c;或专用的表演控制链路&#xff09;接收来自地面站或中央控制系统的灯光指令。指令包含&#xff1a;颜色&#xff08;RGB/RGBW值&#xff0…...

React + Umi(Umijs/Max) 搭建项目及配置

文章标题 01 环境准备02 快速构建2.1 参数选项2.2 umix 还是 umijs/max2.3 使用 pnpm &#xff08;推荐&#xff09;2.4 使用 npm 和 yarn2.5 启动项目2.6 启用 Prettier&#xff08;可选&#xff09;2.7 打包部署发布 03 Tailwind CSS 插件&#xff08;可选&#xff09;3.1 安…...

React 第六十四节Router中HashRouter的使用详细介绍及案例分析

前言 HashRouter 是 React Router 提供的一种路由实现方案&#xff0c;它使用 URL 的 hash 部分&#xff08;# 后面的内容&#xff09;来实现客户端路由功能。 一、HashRouter 的核心用途 客户端路由&#xff1a;在不刷新页面的情况下管理应用导航兼容性&#xff1a;支持不支…...

Linux RDMA网络配置手册

一、配置前准备工作 在进行 RDMA 网络配置之前&#xff0c;请确保以下准备工作已完成&#xff1a; 硬件环境 确保服务器支持 RDMA 功能&#xff0c;例如支持 InfiniBand 或 RoCE&#xff08;RDMA over Converged Ethernet&#xff09;的网卡。确保网络交换设备支持 RDMA 协议…...