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

python基础-10-组织文件

文章目录

  • 【README】
  • 【10】组织文件(复制+移动+删除+重命名)
    • 【10.1】shutil模块(shell工具)
      • 【10.1.1】复制文件和文件夹
        • 【10.1.1.1】复制文件夹及其下文件-shutil.copytree
      • 【10.1.2】文件和文件夹的移动与重命名
      • 【10.1.3】永久删除文件和文件夹
      • 【10.1.4】用send2trash模块安全删除
    • 【10.2】遍历目录树-os.walk()
    • 【10.3】用zipfile模块压缩文件
      • 【10.3.1】读取zip文件
      • 【10.3.2】从zip文件中解压缩
      • 【10.3.3】创建和添加到zip文件

【README】

本文总结自《python编程快速上手-让繁琐工作自动化》第10章,非常棒的一本书,墙裂推荐;



【10】组织文件(复制+移动+删除+重命名)

【10.1】shutil模块(shell工具)

1)shell模块包含一些函数,用于复制,移动,重命名和删除文件;


【10.1.1】复制文件和文件夹

1)shutil.copy(src,des):把src路径下的文件复制到des路径下,其中src与des都是字符串;若des是一个文件名,则它将作为被复制文件的新名字;

  • 该函数返回一个字符串,表示被复制文件的路径;(注意:shutil.copy仅复制文件,不能复制文件夹

2)把当前路径下的src文件夹下的src01.txt文件复制到当前文件夹下的target文件夹下,且复制后的文件名与原文件名保持一致:

# 把当前路径下的src文件夹下的src01.txt文件复制到当前文件夹下的target文件夹下;
copyResult = shutil.copy(Path.cwd() / 'src/src01.txt', Path.cwd() / 'target')
print(copyResult)
# D:\studynote\00-ai-llm\workbench\PythonBasicStudy\chapter10\target\src01.txt

3)把当前路径下的src文件夹下的src01.txt文件复制到当前文件夹下的target文件夹下,且指定复制后的文件名为src01_copy.txt

copyResult2 = shutil.copy(Path.cwd() / 'src/src01.txt', Path.cwd() / 'target/src01_copy.txt')
print(copyResult2)
# D:\studynote\00-ai-llm\workbench\PythonBasicStudy\chapter10\target\src01_copy.txt

【10.1.1.1】复制文件夹及其下文件-shutil.copytree

1)shutil.copytree: 把src路径表示的文件夹及其子文件夹及所有文件一并复制到des文件夹下;shutil.copytree会创建des文件夹,若des存在则抛出异常;

# 复制文件夹及其下文件-shutil.copytree
# 先删除目的地文件夹
force_remove_dir('target_backup')
# 复制到目的地文件夹
copyDirResult = shutil.copytree(Path.cwd() / 'target', Path.cwd() / 'target_backup')
print(copyDirResult)
# D:\studynote\00-ai-llm\workbench\PythonBasicStudy\chapter10\target_backup

【10.1.2】文件和文件夹的移动与重命名

1)shutil.move(src, des): 把src路径表示的文件夹移动到des路径下;一共分为4种情况:

  • 情况1:src是文件夹名,des是文件夹名;等同于移动文件夹并重命名文件夹;
  • 情况2:src是文件名,des是文件夹名;等同于把文件剪切到文件夹;
  • 情况3:src是文件名,des是文件名; 等同于移动文件并重命名文件;

情况1:src是文件夹名,des是文件夹名;等同于移动文件夹并重命名文件夹;

# 情况1:src是文件夹名,des是文件夹名;等同于移动文件夹并重命名文件夹;
# 先删除目的地文件夹
force_remove_dir('target_backup2')
tempResult = shutil.move(Path.cwd() / 'target_backup', Path.cwd() / 'target_backup2')
print(tempResult)
# D:\studynote\00-ai-llm\workbench\PythonBasicStudy\chapter10\target_backup2# 强行删除文件夹 
def force_remove_dir(temp_path):if os.path.exists(temp_path):shutil.rmtree(temp_path)

情况2:src是文件名,des是文件夹名;等同于把文件剪切到文件夹;

# 情况2: 情况2:src是文件名,des是文件夹名;等同于把文件剪切到文件夹
tempResult = shutil.move(Path.cwd() / 'target_backup3/src03.txt', Path.cwd() / 'move_dir')
print(tempResult)
# D:\studynote\00-ai-llm\workbench\PythonBasicStudy\chapter10\move_dir\src03.txt

情况3:src是文件名,des是文件名; 等同于移动文件并重命名文件;

# 情况3:src是文件名,des是文件名; 等同于移动文件并重命名文件;
tempResult = shutil.move(Path.cwd() / 'target_backup3/src03_A.txt', Path.cwd() / 'move_dir/src03_A_moved.txt')
print(tempResult)
# D:\studynote\00-ai-llm\workbench\PythonBasicStudy\chapter10\move_dir\src03_A_moved.txt

在这里插入图片描述

2)使用shutil.move()函数的注意点:

  • 如果目标文件夹不存在,则move()会把原文件重命名为目标文件夹的名称;
# 情况4: src是文件名,des是文件夹名称;但des不存在, 则把src表示的文件重命名为des(把target_backup3/src03_C.txt文件重命名为./move_dir2)
tempResult = shutil.move(Path.cwd() / 'target_backup3/src03_C.txt', Path.cwd() / 'move_dir2')
print(tempResult)
# D:\studynote\00-ai-llm\workbench\PythonBasicStudy\chapter10\move_dir2

【提醒】move函数中目的地路径的各层级目录必须存在,否则pyhon抛出异常;


【10.1.3】永久删除文件和文件夹

1)删除文件和文件夹api:

  • os模块:使用os模块中的函数,可以删除一个文件或一个空文件夹;

    • os.unlink(path) : 删除path路径表示的文件;
    • os.rmdir(path): 删除path路径表示的文件夹;该文件夹必须是空的, 不能有任何文件或文件夹;
  • shutil模块:删除一个文件夹及其所有的 内容;

    • shutil.rmtree(path): 删除path路径表示的文件夹,它包含的所有文件及其下各层级子文件夹都会被删除;
    # 删除文件夹与其下各层级文件夹及文件
    def force_remove_dir(temp_path):if os.path.exists(temp_path):shutil.rmtree(temp_path)# 强行删除一个文件
    def force_remove_file(temp_path):if os.path.exists(temp_path):os.remove(temp_path) # os.remove() 等同于 os.unlink()# 删除文件夹delete_dir_a与其下各层级文件夹及文件
    force_remove_dir(Path.cwd() / "delete_dir_a")
    

    【10.1.4】用send2trash模块安全删除

    1)shutil.rmtree():不可恢复删除文件及文件夹;

    2)推荐的方法是:使用send2trash模块,把文件夹和文件发送到回收站,而不是永久删除它们;

    import send2trash# 使用send2trash模块,把文件夹和文件发送到回收站,而不是永久删除它们
    tempResult = send2trash.send2trash("send2trash_test_dir")
    print(tempResult)
    # None
    

    【10.2】遍历目录树-os.walk()

1)os.walk(dirPath):被传入一个文件夹路径,遍历该文件夹下的子文件夹及文件;

2)os.walk(dirPath)返回以下3个值(当前文件夹指的是:for循环时迭代的文件夹):

  • 当前文件夹名称的字符串;
  • 当前文件夹中子文件夹的字符串列表;
  • 当前文件夹中文件的字符串列表;

3)遍历 src文件夹下的子文件夹列表及文件列表;

在这里插入图片描述

# 使用os.walk()遍历文件夹下的子文件夹及文件
import os
from pathlib import Path
root_dir = Path.cwd() / "src"
for cur_dir, sub_dirs, sub_files in os.walk(root_dir):print("当前文件夹=" + cur_dir)print("子文件夹列表=" + str(sub_dirs))print("子文件列表=" + str(sub_files))print("========== 我是分隔符 ==========")

【遍历结果】

当前文件夹=D:\studynote\00-ai-llm\workbench\PythonBasicStudy\chapter10\src
子文件夹列表=['child01']
子文件列表=['src01.txt', 'src03.txt', 'src03_A.txt']
========== 我是分隔符 ==========
当前文件夹=D:\studynote\00-ai-llm\workbench\PythonBasicStudy\chapter10\src\child01
子文件夹列表=[]
子文件列表=['child01.txt']
========== 我是分隔符 ==========

【10.3】用zipfile模块压缩文件

【10.3.1】读取zip文件

1)读取zip文件,必须创建一个zip文件对象,使用 zipFile.ZipFile(文件名)创建一个Zip文件对象;

import zipfile, os
from pathlib import Path# 读取zip文件
print("====== 读取zip文件 ======")
tempZip01 = zipfile.ZipFile(Path.cwd() / 'zipfile01.zip')
fileList = tempZip01.namelist()
print(str(fileList))
# ['zipfile01/a.txt', 'zipfile01/b.txt', 'zipfile01/']
print(type(fileList))
# <class 'list'>for fileName in fileList:tempFile = tempZip01.getinfo(fileName)print(str(tempFile))print(tempFile.file_size)print(tempFile.compress_size)print("=== 我是分隔符 === ")
# 关闭zip文件
tempZip01.close()

【运行结果】

====== 读取zip文件 ======
['zipfile01/a.txt', 'zipfile01/b.txt', 'zipfile01/']
<class 'list'>
<ZipInfo filename='zipfile01/a.txt' external_attr=0x20 file_size=21>
21
21
我是分隔符
<ZipInfo filename='zipfile01/b.txt' external_attr=0x20 file_size=21>
21
21
我是分隔符
<ZipInfo filename='zipfile01/' external_attr=0x10>
0
0
我是分隔符

【10.3.2】从zip文件中解压缩

1)zipfile的extractAll方法从zip文件中解压缩所有文件和文件夹,并将其放入当前目录中; 若指定了目标文件夹(目录 ),则解压缩到目标文件夹中;

print("====== 从zip文件中解压缩所有文件 ======")
tempZip01 = zipfile.ZipFile(Path.cwd() / 'zipfile01.zip')
tempZip01.extractall(Path.cwd() / 'target_extract')
tempZip01.close()

在这里插入图片描述

2)使用extract函数解压缩单个文件:传入的文件名,必须是namelist()返回的列表中的元素; 可以向extract传入第2个参数,用于表示目标文件夹;若目标文件夹不存在,则新建;也可以不传入第2个参数,则目标文件夹默认是当前文件夹;

print("====== 从zip文件中解压缩单个 ======")
tempZip01 = zipfile.ZipFile(Path.cwd() / 'zipfile01.zip')
result = tempZip01.extract("zipfile01/a.txt", Path.cwd() / 'target_extract')
print(result)
# D:\studynote\00-ai-llm\workbench\PythonBasicStudy\chapter10\chapter10_03\target_extract\zipfile01\a.txt
tempZip01.close()

【10.3.3】创建和添加到zip文件

1)使用不同模式打开zi文件:

  • 使用写模式打开zip文件,第2个参数传入w;
  • 使用追加模式打开zip文件,第2个参数传入a;
# 10.3.3 创建和添加到zip文件
print("====== 创建和添加到zip文件 ======")
tempZip02 = zipfile.ZipFile(Path.cwd() / 'zipfile02.zip', "w")
tempZip02.write("10_03.py", compress_type=zipfile.ZIP_DEFLATED)
tempZip02.close()

相关文章:

python基础-10-组织文件

文章目录 【README】【10】组织文件&#xff08;复制移动删除重命名&#xff09;【10.1】shutil模块(shell工具)【10.1.1】复制文件和文件夹【10.1.1.1】复制文件夹及其下文件-shutil.copytree 【10.1.2】文件和文件夹的移动与重命名【10.1.3】永久删除文件和文件夹【10.1.4】用…...

从代码学习深度学习 - LSTM PyTorch版

文章目录 前言一、数据加载与预处理1.1 代码实现1.2 功能解析二、LSTM介绍2.1 LSTM原理2.2 模型定义代码解析三、训练与预测3.1 训练逻辑代码解析3.2 可视化工具功能解析功能结果总结前言 深度学习中的循环神经网络(RNN)及其变种长短期记忆网络(LSTM)在处理序列数据(如文…...

linux gcc

一、常用编译选项 ​基本编译 gcc [input].c -o [output] ​示例&#xff1a; gcc hello.c -o hello # 将 hello.c 编译为可执行文件 hello ./hello # 运行程序 ​分步编译 预处理&#xff1a;-E&#xff08;生成 .i 文件&#xff09; gcc -E hello.c -o hello…...

“一路有你”公益行携手《东方星动》走进湖南岳阳岑川镇中心小学

2025年4月2日&#xff0c;“一路有你”公益行携手《东方星动》走进湖南岳阳岑川镇&#xff0c;一场充满爱与温暖的捐赠仪式在岑川镇中心小学隆重举行。这是一场跨越千里的爱心捐赠&#xff0c;也是一场别开生面的国防教育&#xff0c;更是一场赋能提质的文化盛宴。 岑川镇地处湘…...

HTML语言的空值合并

HTML语言的空值合并 引言 在现代Web开发中&#xff0c;HTML&#xff08;超文本标记语言&#xff09;是构建网页的基础语言。随着前端技术的快速发展&#xff0c;开发者们面临着大量不同的工具和技术&#xff0c;尤其是在数据处理和用户交互方面。空值合并是一些编程语言中常用…...

并发上传及 JS 的单线程特性

1. JS 的单线程特性 JS 是单线程特性&#xff0c;这意味着所有代码都在一个线程上&#xff08;即主线程&#xff09;执行&#xff0c;同一时间只有一个任务在执行&#xff0c;其他任务都在等待。 这意味着即使有多个异步操作&#xff0c;它们的回调函数也会按顺序执行&#xff…...

c语言学习16——内存函数

内存函数 一、memcpy使用和模拟实现1.1参数1.2 使用1.3 模拟实现 二、memmove使用和模拟实现2.1 参数2.2 使用2.3 模拟实现 三、memset使用3.1 参数3.2 使用 四、memcmp使用4.1 参数4.2 使用 一、memcpy使用和模拟实现 1.1参数 因为内存中不知道存的是什么类型的地址&#xff…...

html5炫酷3D文字效果项目开发实践

炫酷3D文字效果项目开发实践 这里写目录标题 炫酷3D文字效果项目开发实践项目概述技术实现1. 基础HTML结构2. 核心CSS技术2.1 3D空间设置2.2 文字立体效果2.3 动画效果 3. 交互优化3.1 鼠标悬停效果3.2 光晕效果 性能优化考虑项目亮点总结 项目概述 在这个项目中&#xff0c;我…...

【前端】【tailwind】tailwind默认重置了样式

Tailwind CSS 自身已经内置了现代化的样式重置方案 —— Preflight&#xff08;基于 modern-normalize&#xff09;&#xff0c;这意味着在大多数情况下不需要额外引入传统的 reset.css 或 normalize.css。但具体是否需要补充重置&#xff0c;取决于你的项目需求&#xff0c;以…...

学透Spring Boot — 009. Spring Boot的四种 Http 客户端

目录 常见的HttpClient Spring 提供的HttpClient RestTemplate Spring 提供的模板类 XXXTemplate RestTemplate的使用 RestTemplate的使用技巧 RestTemplate的问题 RestClient RestClinet的基本使用 RestClient的自动配置 RestClient 序列化对象 异常处理 onStatus …...

STM32单片机入门学习——第14节: [6-2] 定时器定时中断定时器外部时钟

写这个文章是用来学习的,记录一下我的学习过程。希望我能一直坚持下去,我只是一个小白,只是想好好学习,我知道这会很难&#xff0c;但我还是想去做&#xff01; 本文写于&#xff1a;2025.04.04 STM32开发板学习——第14节: [6-2] 定时器定时中断&定时器外部时钟 前言开发…...

Python 元组

Python 元组 元组的介绍 元组和列表很像&#xff0c;都是用来保存多个数据使用一对小括号()来表示一个元组元组和列表的区别在于&#xff0c;列表是可变数据类型&#xff0c;而元组是不可变数据类型 nums (9, 4, 3, 1, 9, 7, 6, 9, 3, 9) print(nums) # (9, 4, 3, 1, 9, 7…...

Linux系统编程:进程管理、内存对比与树莓派应用

一、认识进程和线程&#xff0c;在Linux系统下查看系统中各进程的编号pid并终止一个进程pid 1.进程和线程 ​​进程​​&#xff1a;操作系统分配资源&#xff08;如内存、CPU时间片&#xff09;的基本单位。每个进程有独立的内存空间&#xff0c;进程间通信需要较复杂的机制…...

JSON介绍

JSON 的核心特点​​ ​​易读易写​​&#xff1a;纯文本格式&#xff0c;结构清晰&#xff08;像“键值对”的集合&#xff09;。​​通用性强​​&#xff1a;任何语言都能解析或生成 JSON。​​用途广泛​​&#xff1a;常用于前后端数据传输、配置文件、API 接口等。 &am…...

【Cursor】切换主题

右键顶部&#xff0c;把菜单栏勾上 首选项-主题-颜色主题 选择和喜欢的颜色主题即可&#xff0c;一般是“现代深色”...

【C++11(上)】—— 我与C++的不解之缘(三十)

一、C11 这里简单了解一下C发展好吧&#xff1a; C11是C的第二个大版本&#xff0c;也是自C98以来最重要的一个版本。 它引入了大量的更改&#xff0c;它曾被人们称为C0x&#xff0c;因为它被期待在2010年之前发布&#xff1b;但在2011年8月12日才被采纳。 C03到C11花了8年时间…...

python如何把列表中所有字符变成小写

在Python中&#xff0c;你可以使用列表推导式&#xff08;list comprehension&#xff09;结合字符串的.lower()方法&#xff0c;将列表中的所有字符串元素转换为小写。以下是一个示例&#xff1a; # 定义一个包含字符串的列表 strings ["Hello", "WORLD"…...

DEAP数据集介绍

DEAP数据集介绍 0. 数据集摘要1. 文件列表2. 文件详细信息2.1 Online_ratings2.2 Video_list2.3 Participant_ratings2.4 Participant_questionnaire2.5 Face_video.zip2.6 Data_original.zip2.7 Data_preprocessed_matlab.zip 和 Data_preprocessed_python.zip 3. References欢…...

基于RDK X3的“校史通“机器人:SLAM导航+智能交互,让校史馆活起来!

视频标题&#xff1a; 【校史馆の新晋顶流】RDK X3机器人&#xff1a;导览员看了直呼内卷 视频文案&#xff1a; 跑得贼稳团队用RDK X3整了个大活——给校史馆造了个"社牛"机器人&#xff01; 基于RDK X3开发板实现智能导航与语音交互SLAM技术让机器人自主避障不…...

JavaScript基础-window.localStorage

在现代Web开发中&#xff0c;数据存储对于提升用户体验至关重要。window.localStorage 是一种简单而强大的客户端存储机制&#xff0c;允许网页以键值对的形式持久化保存数据。与 sessionStorage 不同&#xff0c;localStorage 中的数据不会因浏览器标签页关闭或刷新而丢失&…...

在航电系统中提高可靠性的嵌入式软件设计

1.总线余度设计 数据传输采用双余度总线设计&#xff0c;CANFD为主&#xff0c;RS485为备。发送方将相同的数据分别通过双总线来发送&#xff0c;接收方优先处理主线数据。由于总线上数据频率固定&#xff0c;可设置定时器监控主总线的数据&#xff0c;当定时器超时后&#xff…...

H.266/VVC SCC技术学习:块差分脉冲编码调整(block differential pulse coded modulation, BDPCM)

近年来&#xff0c;屏幕内容视频广泛用于多媒体应用&#xff0c;例如远程桌面,屏幕共享等。由于屏幕内容视频的特性与自然视频有较大区别&#xff0c;VVC中使用了帧内块复制&#xff08;intra block copy, 即IBC&#xff09;, 调色板&#xff08;Palette&#xff09;&#xff0…...

网络编程—Socket套接字(TCP)

上篇文章&#xff1a; 网络编程—Socket套接字&#xff08;UDP&#xff09;https://blog.csdn.net/sniper_fandc/article/details/146923670?fromshareblogdetail&sharetypeblogdetail&sharerId146923670&sharereferPC&sharesourcesniper_fandc&sharefro…...

数据结构:二叉树(三)·(重点)

二叉树的存储结构 ⼆叉树⼀般可以使⽤两种结构存储&#xff0c;⼀种顺序结构&#xff0c;⼀种链式结构。 顺序结构 顺序结构存储就是使⽤数组来存储&#xff0c;⼀般使⽤数组只适合表⽰完全⼆叉树&#xff0c;因为不是完全⼆叉树会有 空间的浪费&#xff0c;完全⼆叉树更适合…...

StyleTTS 2:文本到语音(Text-to-Speech, TTS)模型

StyleTTS 2 是一种先进的文本到语音&#xff08;Text-to-Speech, TTS&#xff09;模型&#xff0c;通过结合风格扩散&#xff08;style diffusion&#xff09;和对抗训练&#xff08;adversarial training&#xff09;&#xff0c;利用大规模语音语言模型&#xff08;Speech La…...

痉挛性斜颈康复路,饮食要点来相助

痉挛性斜颈患者除了接受正规治疗&#xff0c;合理饮食对缓解症状、促进康复也至关重要。 高蛋白质食物是饮食中的重点。像鸡蛋&#xff0c;富含人体必需的氨基酸&#xff0c;其组成与人体组成模式接近&#xff0c;易于吸收。每天吃 1 - 2 个鸡蛋&#xff0c;能为身体补充修复肌…...

谷歌 Gemini 2.5 Pro 免费开放

2025 年 3 月 30 日&#xff0c;谷歌宣布将最新的 Gemini AI 旗舰模型 Gemini 2.5 Pro 免费向所有 Gemini 应用用户开放。以下是关于此次免费开放的一些具体信息1&#xff1a; 背景&#xff1a;此前&#xff0c;Gemini 2.5 Pro 仅向支付 19.99 美元月费的 Gemini Advanced 用户…...

规则引擎Drools

1.规则引擎概述 1.1 什么是规则引擎 规则引擎 全称为业务规则管理系统&#xff0c;英文名为BRMS&#xff0c;规则引擎的主要思想是将应用程序中的业务决策部分分离出来&#xff0c;并使用预定义的语义模块编写业务规则&#xff0c;由用户或开发者在需要时进行配置和管理。 需…...

第三季:挪威

挪威 挪威是北欧的一个国家&#xff0c;位于斯堪的纳维亚半岛的西部。以下是关于挪威的详细介绍&#xff1a; 地理位置与自然环境 位置&#xff1a;挪威位于北欧&#xff0c;东邻瑞典&#xff0c;东北与芬兰和俄罗斯接壤&#xff0c;西濒挪威海&#xff0c;北临巴伦支海。地…...

搜索与图论 树的深度优先遍历 树的重心

树的一种特殊的图&#xff0c;无环连通图 图还分为有向图&#xff0c;无向图 但是无向图其实也是特殊的有向图 &#xff08;a指向b&#xff0c;b也指向a&#xff0c;每个连接节点都如此&#xff0c;则是无向图&#xff09; 那我们只需要讨论有向图 有向图的分类 邻接矩阵 …...

ORA-09925 No space left on device 问题处理全过程记录

本篇文章关键字&#xff1a;linux、oracle、审计、ORA-09925 一、故障现像 朋友找到我说是他们备份软件上报错。 问题比较明显&#xff0c;ORA-09925&#xff0c;看起来就是空间不足导致的 二、问题分析过程 这里说一下逐步的分析思路&#xff0c;有个意外提前说一下就是我…...

Java开发者の模型召唤术:LangChain4j咏唱指南(三)

Java开发者の模型召唤术&#xff1a;LangChain4j咏唱指南(三) 往期回顾&#xff1a; Java开发者の模型召唤术&#xff1a;LangChain4j咏唱指南(一)Java开发者の模型召唤术&#xff1a;LangChain4j咏唱指南(二) 上两期博客中简单的为大家介绍了 langchain4j是什么、java 集成…...

【leetcode100】动态规划Java版本

70. 爬楼梯 题目 思考的时候觉得情况很多&#xff0c;无从下手&#xff0c;卡在了找推导公式这一步。 看了随想录后知道以简单的三个阶梯来推导dp公式&#xff0c;为什么不是四个&#xff0c;五个为一组呢&#xff1f;因为题目要求的只能爬1个阶梯&#xff0c;或者2个阶梯&…...

RSA和ECC在密钥长度相同的情况下哪个更安全?

​现在常见的SSL证书&#xff0c;如&#xff1a;iTrustSSL都支持RSA和ECC的加密算法&#xff0c;正常情况下RAS和ECC算法该如何选择呢&#xff1f;实际上在密钥长度相同的情况下&#xff0c;ECC&#xff08;椭圆曲线密码学&#xff09;通常比RSA&#xff08;Rivest-Shamir-Adle…...

YOLO 获取 COCO 指标终极指南 | 从标签转换到 COCOAPI 评估 (训练/验证) 全覆盖【B 站教程详解】

✅ YOLO 轻松获取论文 COCO 指标&#xff1a;AP&#xff08;small&#xff0c;medium&#xff0c;large &#xff09;| 从标签转换到 COCOAPI 评估 (训练/验证) 全覆盖 文章目录 一、摘要二、为什么需要 COCO 指标评估 YOLO 模型&#xff1f;三、核心挑战与解决方案 (视频教程核…...

【算法竞赛】dfs+csp综合应用(蓝桥2023A9像素放置)

目录 一、 题目 二、思路 &#xff08;1&#xff09;算法框架选择 &#xff08;2&#xff09;剪枝策略 具体来说就是&#xff1a; 三、代码 (1) 数据读取与初始化 (2) 检查当前填充是否符合要求 (3) 递归 DFS 进行填充 (4) 读取输入 & 调用 DFS (5) 完整代码 一…...

3D点云配准RPM-Net模型解读(附论文+源码)

RPM-Net 总体流程代码数据预处理模型计算 α α α和 β β β特征提取变换矩阵计算损失 论文链接&#xff1a;RPM-Net: Robust Point Matching using Learned Features 官方链接&#xff1a;RPMNet 老规矩&#xff0c;先看看效果。 看看论文里给的对比图 总体流程 在学…...

23种设计模式-行为型模式-命令

文章目录 简介问题解决代码核心设计优势 总结 简介 命令是一种行为设计模式&#xff0c; 它能把请求转换为一个包含与请求相关的所有信息 的独立对象。这个转换能让你把请求方法参数化、延迟请求执行或把请求放在队列里&#xff0c;并且能实现可撤销操作。 问题 假如你正在开…...

ngx_cpystrn

定义在 src\core\ngx_string.c u_char * ngx_cpystrn(u_char *dst, u_char *src, size_t n) {if (n 0) {return dst;}while (--n) {*dst *src;if (*dst \0) {return dst;}dst;src;}*dst \0;return dst; } ngx_cpystrn 函数的作用是安全地将源字符串&#xff08;src&#x…...

常用的国内镜像源

常见的 pip 镜像源 阿里云镜像&#xff1a;https://mirrors.aliyun.com/pypi/simple/ 清华大学镜像&#xff1a;https://pypi.tuna.tsinghua.edu.cn/simple 中国科学技术大学镜像&#xff1a;https://pypi.mirrors.ustc.edu.cn/simple/ 豆瓣镜像&#xff1a;https://pypi.doub…...

【小沐杂货铺】基于Three.JS绘制太阳系Solar System(GIS 、WebGL、vue、react)

&#x1f37a;三维数字地球系列相关文章如下&#x1f37a;&#xff1a;1【小沐学GIS】基于C绘制三维数字地球Earth&#xff08;456:OpenGL、glfw、glut&#xff09;第一期2【小沐学GIS】基于C绘制三维数字地球Earth&#xff08;456:OpenGL、glfw、glut&#xff09;第二期3【小沐…...

Navicat17详细安装教程(附最新版本安装包和补丁)2025最详细图文教程安装手册

目录 前言&#xff1a;为什么选择Navicat 17&#xff1f; 一、下载Navicat17安装包 二、安装Navicat 1.运行安装程序 2.启动安装 3.同意“协议” 4.设置安装位置 5.创建桌面图标 6.开始安装 7.安装完成 三、安装补丁 1.解押补丁包 2.在解压后的补丁包目录下找到“w…...

记忆宫殿APP:全方位脑力与思维训练,助你提升记忆力,预防老年痴呆

记忆宫殿APP&#xff0c;一款专业的记忆训练软件&#xff0c;能去帮你提升自己的记忆能力&#xff0c;多样的训练项目创新的记忆方法&#xff0c;全方面帮你去提升你的记忆能力。 记忆宫殿APP有丰富的记忆训练项目&#xff0c;如瞬间记忆、短时记忆、机械记忆等&#xff0c;以…...

SpringBoot+Spring+MyBatis相关知识点

目录 一、相关概念 1.spring框架 2.springcloud 3.SpringBoot项目 4.注解 5.SpringBoot的文件结构 6.启动类原理 二、相关操作 1.Jar方式打包 2.自定义返回的业务状态码 3.Jackson 4.加载配置文件 5.异常处理 三、优化配置 1.简化sql语句 2.查询操作 复杂查询 一…...

【力扣hot100题】(050)岛屿数量

一开始还以为会很难很难&#xff08;以为暴力搜索会时间超限要用别的办法&#xff09;&#xff0c;没想到并不难。 我最开始是用vector<vector<bool>>记录搜索过的地域&#xff0c;每次递归遍历周围所有地域。 class Solution { public:vector<vector<char…...

Opencv计算机视觉编程攻略-第九节 描述和匹配兴趣点

一般而言&#xff0c;如果一个物体在一幅图像中被检测到关键点&#xff0c;那么同一个物体在其他图像中也会检测到同一个关键点。图像匹配是关键点的常用功能之一&#xff0c;它的作用包括关联同一场景的两幅图像、检测图像中事物的发生地点等等。 1.局部模板匹配 凭单个像素就…...

pat学习笔记

two pointers 双指针 给定一个递增的正整数序列和一个正整数M&#xff0c;求序列中的两个不同位置的数a和b&#xff0c;使得它们的和恰好为M&#xff0c;输出所有满足条件的方案。例如给定序列{1,2,3,4,5,6}和正整数M 8&#xff0c;就存在268和358成立。 容易想到&#xff1…...

MoE Align Sort在医院AI医疗领域的前景分析(代码版)

MoE Align & Sort技术通过优化混合专家模型(MoE)的路由与计算流程,在医疗数据处理、模型推理效率及多模态任务协同中展现出显著优势,其技术价值与应用意义从以下三方面展开分析: 一、方向分析 1、提升医疗数据处理效率 在医疗场景中,多模态数据(如医学影像、文本…...

大数据概念介绍

这节课给大家讲一下大数据的生态架构, 大数据有很多的产品琳琅满目, 大家看到图上就知道产品很多, 那这些产品它们各自的功能是什么, 它们又是怎么样相互配合, 来完成一整套的数据存储, 包括分析计算这样的一些任务, 这节课就要给大家进行一个分析, 那我们按照数据处理…...

Linux(2025.3.15)

1、将/etc/passwd&#xff0c;/etc/shadow,/etc/group文件复制到/ceshi; 操作&#xff1a; &#xff08;1&#xff09;在根目录下创建ceshi目录&#xff1b; &#xff08;2&#xff09;复制&#xff1b; 结果&#xff1a; 2、找到/etc/ssh目录下ssh开头的所有文件并将其复制到…...