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

Python文件操作完全指南:从基础到高级应用

目录

一、文件基础概念

1.1 什么是文件?

1.2 文件的存储方式

文本文件

二进制文件

二、Python文件操作基础

2.1 文件操作三步曲

2.2 核心函数与方法

2.3 文件读取详解

基本读取示例

文件指针机制

2.4 文件打开模式

写入文件示例

2.5 高效读取大文件

三、文件操作实战案例

3.1 文件复制功能实现

小文件复制(一次性读写)

大文件复制(逐块读写)

3.2 文件内容统计

四、文件与目录管理

4.1 文件操作

4.2 目录操作

4.3 路径操作最佳实践

五、文本编码深度解析

5.1 常见编码格式

5.2 Python编码处理

5.3 编码问题排查

六、高级文件操作技巧

6.1 上下文管理器(with语句)

6.2 二进制文件操作

6.3 临时文件处理

6.4 文件压缩处理

七、最佳实践总结

八、常见问题解答


一、文件基础概念

1.1 什么是文件?

在计算机中,文件是指存储在某种长期储存设备上的一段数据。这些长期存储设备包括:

  • 硬盘(HDD/SSD)

  • U盘和移动硬盘

  • 光盘(CD/DVD)

  • 网络存储设备

文件的核心作用是将数据长期保存下来,在需要时可以随时访问和使用。与内存中的临时数据不同,文件中的数据在计算机关闭后仍然能够保留。

1.2 文件的存储方式

所有计算机文件都是以二进制形式存储在磁盘上的。根据内容和用途的不同,文件可以分为两大类:

文本文件
  • 特点:由可打印字符组成,人类可直接阅读

  • 查看方式:可以使用文本编辑软件(如记事本、VS Code等)查看

  • 本质:仍然是二进制文件,只是遵循特定编码规则

  • 示例:Python源程序(.py)、HTML文件(.html)、Markdown文件(.md)

二进制文件
  • 特点:内容不是为直接阅读设计的,而是供特定软件使用

  • 查看方式:需要专用软件才能正确解析

  • 示例:图片(.jpg, .png)、音频(.mp3)、视频(.mp4)、可执行程序(.exe)

二、Python文件操作基础

2.1 文件操作三步曲

在Python中操作文件遵循固定的三个步骤:

  1. 打开文件:建立程序与文件的连接

  2. 读写操作

    • 读取:将文件内容加载到内存

    • 写入:将内存中的数据保存到文件

  3. 关闭文件:释放系统资源

2.2 核心函数与方法

Python提供了以下关键函数和方法来进行文件操作:

序号函数/方法说明使用示例
01open()打开文件并返回文件对象file = open("test.txt")
02read()读取文件全部内容content = file.read()
03write()写入内容到文件file.write("Hello")
04close()关闭文件file.close()

重要提示

  • open()函数返回的文件对象是后续所有操作的基础

  • 操作完成后必须调用close()释放资源,否则可能导致:

    • 系统资源浪费

    • 文件被占用无法被其他程序访问

    • 数据未完全写入磁盘

2.3 文件读取详解

基本读取示例
# 1. 打开文件(注意文件名大小写敏感)
file = open("example.txt")# 2. 读取内容
content = file.read()
print(content)# 3. 关闭文件
file.close()
文件指针机制
  • 文件指针标记当前读取位置

  • 初次打开时,指针位于文件开头

  • 执行read()后,指针移动到文件末尾

  • 再次调用read()将无法读取内容(因为指针已在末尾)

开发建议:先编写打开/关闭代码框架,再填充中间的读写逻辑,避免忘记关闭文件。

2.4 文件打开模式

open()函数的第二个参数指定文件打开模式:

模式说明文件存在时文件不存在时
r只读指针在开头抛出异常
w只写内容被清空创建新文件
a追加指针在末尾创建新文件
r+读写指针在开头抛出异常
w+读写内容被清空创建新文件
a+读写指针在末尾创建新文件

性能提示:频繁移动文件指针会影响性能,多数情况下使用简单的只读(r)或只写(w)模式即可。

写入文件示例
# 以写入模式打开文件(会覆盖原有内容)
f = open("diary.txt", "w")f.write("2023年5月15日\n")
f.write("今天学习了Python文件操作\n")
f.write("收获很大!")f.close()  # 确保内容被写入磁盘

2.5 高效读取大文件

read()方法会一次性加载全部内容,对于大文件可能导致内存不足。解决方案是使用readline()逐行读取:

file = open("large_log.txt")while True:line = file.readline()# 读到空字符串表示文件结束if not line:break# 每行末尾已有\n,所以print不需要换行print(line, end="")file.close()

优化技巧:对于超大型文件,还可以考虑使用固定大小的缓冲读取:

with open("huge_file.bin", "rb") as f:while chunk := f.read(4096):  # 每次读取4KBprocess(chunk)

三、文件操作实战案例

3.1 文件复制功能实现

小文件复制(一次性读写)
# 源文件和目标文件
source = "document.pdf"
target = "document_backup.pdf"# 使用二进制模式确保所有文件都能正确复制
with open(source, "rb") as src, open(target, "wb") as dst:content = src.read()dst.write(content)
大文件复制(逐块读写)
def copy_large_file(src_path, dst_path, buffer_size=1024*1024):"""复制大文件,默认使用1MB的缓冲区"""with open(src_path, "rb") as src, open(dst_path, "wb") as dst:while True:chunk = src.read(buffer_size)if not chunk:breakdst.write(chunk)# 使用示例
copy_large_file("big_video.mp4", "backup.mp4")

3.2 文件内容统计

def file_stats(filename):"""统计文件的行数、单词数和字符数"""lines = words = chars = 0with open(filename, "r", encoding="utf-8") as f:for line in f:lines += 1words += len(line.split())chars += len(line)return {"lines": lines, "words": words, "chars": chars}# 使用示例
stats = file_stats("article.txt")
print(f"行数: {stats['lines']}, 单词数: {stats['words']}, 字符数: {stats['chars']}")

四、文件与目录管理

Python通过os模块提供丰富的文件/目录管理功能:

4.1 文件操作

操作方法示例注意事项
重命名os.rename()os.rename("old.txt", "new.txt")跨设备移动可能失败
删除os.remove()os.remove("temp.txt")删除前应检查文件是否存在
存在检查os.path.exists()os.path.exists("data.db")也可用于目录检查

4.2 目录操作

操作方法示例说明
列出内容os.listdir()files = os.listdir(".")返回文件名列表
创建目录os.mkdir()os.mkdir("new_folder")父目录必须存在
递归创建os.makedirs()os.makedirs("path/to/folder")自动创建中间目录
删除目录os.rmdir()os.rmdir("empty_dir")目录必须为空
获取当前目录os.getcwd()print(os.getcwd())返回绝对路径
切换目录os.chdir()os.chdir("../")相对/绝对路径均可

4.3 路径操作最佳实践

建议使用os.path模块处理路径相关问题:

import os# 拼接路径(自动处理不同操作系统的分隔符)
config_path = os.path.join("config", "app", "settings.ini")# 获取文件名和扩展名
filename = os.path.basename("/path/to/file.txt")  # "file.txt"
file_ext = os.path.splitext(filename)[1]         # ".txt"# 路径存在性检查
if os.path.isfile(config_path):print("配置文件存在")

五、文本编码深度解析

5.1 常见编码格式

  1. ASCII

    • 最早的标准编码

    • 仅包含128个字符(英文字母、数字、基本符号)

    • 每个字符占1字节

  2. Unicode

    • 涵盖全球所有文字系统

    • 为每个字符分配唯一编码(码点)

    • UTF-8是最流行的Unicode实现方式

  3. UTF-8

    • 变长编码(1-4字节)

    • 英文1字节,中文通常3字节

    • 兼容ASCII

5.2 Python编码处理

  • Python 3.x默认使用UTF-8编码

  • 最佳实践:始终明确指定编码

# 推荐的文件打开方式
with open("multilang.txt", "r", encoding="utf-8") as f:content = f.read()

5.3 编码问题排查

常见错误及解决方案:

  1. UnicodeDecodeError

    • 原因:使用了错误的编码读取文件

    • 解决方案:尝试其他编码(如gbk、utf-16)

try:with open("unknown.txt", "r", encoding="utf-8") as f:content = f.read()
except UnicodeDecodeError:# 尝试其他编码with open("unknown.txt", "r", encoding="gbk") as f:content = f.read()
  1. BOM头问题

    • 某些编辑器会在UTF-8文件开头添加BOM标记

    • 解决方案:使用encoding="utf-8-sig"

六、高级文件操作技巧

6.1 上下文管理器(with语句)

自动管理文件资源的推荐方式:

with open("data.txt", "r") as f:content = f.read()
# 离开with块后文件会自动关闭,即使发生异常

6.2 二进制文件操作

处理图片、视频等二进制文件:

# 复制图片
with open("photo.jpg", "rb") as src, open("copy.jpg", "wb") as dst:dst.write(src.read())# 修改二进制文件特定位置
with open("data.bin", "r+b") as f:f.seek(10)       # 移动到第10字节f.write(b"\x00") # 写入新值

6.3 临时文件处理

使用tempfile模块创建临时文件:

import tempfile# 创建临时文件(自动删除)
with tempfile.NamedTemporaryFile(delete=True) as tmp:tmp.write(b"临时数据")tmp.seek(0)print(tmp.read())

6.4 文件压缩处理

使用标准库处理zip文件:

import zipfile# 创建zip压缩包
with zipfile.ZipFile("archive.zip", "w") as zf:zf.write("document.txt")# 解压zip文件
with zipfile.ZipFile("archive.zip", "r") as zf:zf.extractall("output_dir")

七、最佳实践总结

  1. 资源管理

    • 始终使用with语句确保文件正确关闭

    • 避免同时打开过多文件

  2. 路径处理

    • 使用os.path代替手动拼接路径

    • 处理用户输入路径时进行规范化

  3. 编码规范

    • 明确指定文件编码(推荐UTF-8)

    • 处理多语言内容时考虑使用chardet检测编码

  4. 异常处理

    • 捕获文件操作可能抛出的异常(如FileNotFoundError)

    • 提供有意义的错误信息

  5. 性能优化

    • 大文件使用流式处理(逐行或分块)

    • 频繁的小文件操作考虑使用缓冲

八、常见问题解答

Q1:为什么我的文件内容没有被立即写入磁盘?
A:写入操作可能被缓冲,调用flush()或关闭文件可强制写入。使用with语句可自动处理。

Q2:如何同时读写同一个文件?
A:使用r+模式,注意指针位置:

with open("data.txt", "r+") as f:content = f.read()f.seek(0)f.write("New header\n" + content)

Q3:为什么读取中文文件会出现乱码?
A:因为使用了错误的编码打开文件,确保指定正确的编码(如encoding="utf-8")。

Q4:如何安全地修改文件内容?
A:推荐做法是:

  1. 读取原文件内容

  2. 在内存中修改

  3. 写入新文件

  4. 用新文件替换原文件

import osdef safe_update(filename, update_func):"""安全更新文件内容"""tempname = filename + ".tmp"with open(filename, "r") as src, open(tempname, "w") as dst:new_content = update_func(src.read())dst.write(new_content)os.replace(tempname, filename)

相关文章:

Python文件操作完全指南:从基础到高级应用

目录 一、文件基础概念 1.1 什么是文件? 1.2 文件的存储方式 文本文件 二进制文件 二、Python文件操作基础 2.1 文件操作三步曲 2.2 核心函数与方法 2.3 文件读取详解 基本读取示例 文件指针机制 2.4 文件打开模式 写入文件示例 2.5 高效读取大文件 三…...

03(总)-docker篇 Dockerfile镜像制作(jdk,jar)与jar包制作成docker容器方式

全文目录,一步到位 1.前言简介1.1 专栏传送门1.1.2 上文传送门 2. docker镜像制作一: jdk2.1 制作jdk镜像2.1.1 准备工作2.1.2 jdk镜像的Dockerfile2.1.3 基于Dockerfile构建镜像2.1.4 docker使用镜像运行容器2.1.5 进入jdk1.8容器内测试 3. docker镜像制作二: java镜像(jar包)…...

CUDA的安装

打开nvidia控制面板 找到组件 打开 CUDA Toolkit Archive | NVIDIA Developer 下载CUDA...

四六级听力调频广播有线传输无线覆盖系统:弥补单一发射系统安全缺陷,构建稳定可靠听力系统平台

四六级听力调频广播有线传输无线覆盖系统:弥补单一发射系统安全缺陷,构建稳定可靠听力系统平台 北京海特伟业科技有限公司任洪卓发布于2025年4月16日 随着英语四六级考试的规模不断扩大,听力考试部分的设备可靠性问题日益凸显。传统的无线发射系统存在…...

信创服务器-大国崛起,信创当道!

信创产业是数据安全、网络安全的基础,也是新基建的重要组成部分。在政策的推动下,2020-2022 年,中国信创服务器出货量整体呈现出快速增长的趋势,其中党政、电信、金融等领域采购频次高,单次采购量大,是中国…...

【仿Mudou库one thread per loop式并发服务器实现】SERVER服务器模块实现

SERVER服务器模块实现 1. Buffer模块2. Socket模块3. Channel模块4. Poller模块5. EventLoop模块5.1 TimerQueue模块5.2 TimeWheel整合到EventLoop5.1 EventLoop与线程结合5.2 EventLoop线程池 6. Connection模块7. Acceptor模块8. TcpServer模块 1. Buffer模块 Buffer模块&…...

冒泡与 qsort 排序策略集

今天我们要学习两种排序方法,分别是冒泡排序和qsort函数排序,冒泡排序相对qsort函数排序要简单一点,更易于理解。 1.冒泡排序 冒泡排序(Bubble Sort)是一种简单的排序算法,它通过重复遍历元素列并比较相邻元素来实现排…...

【Linux】第七章 控制对文件的访问

目录 1. 什么是文件系统权限?它是如何工作的?如何查看文件的权限? 2. 解释‘-rw-r--r--’这个字符串。 3. 使用什么命令可以更改文件和目录的权限?写出分别使用符号法和数值法将权限从 754 修改为 775 的命令。 4. 如何修改文…...

网站301搬家后谷歌一直不收录新页面怎么办?

当网站因更换域名或架构调整启用301重定向后,许多站长发现谷歌迟迟不收录新页面,甚至流量大幅下滑。 例如,301跳转设置错误可能导致权重传递失效,而新站内容与原站高度重复则可能被谷歌判定为“低价值页面”。 即使技术层面无误&a…...

socket 客户端和服务器通信

服务器 using BarrageGrab; using System; using System.Collections.Concurrent; using System.Linq; using System.Net; using System.Net.Sockets; using System.Text; using System.Threading;namespace Lyx {class Server{private TcpListener listener;private Concurre…...

C实现md5功能

md5在线验证&#xff1a; 在线MD5计算_ip33.com 代码如下&#xff1a; #include "md5.h" #include <string.h> #include "stdio.h"/** 32-bit integer manipulation macros (little endian)*/ #ifndef GET_ULONG_LE #define GET_ULONG_LE(n,b,i) …...

【项目】CherrySudio配置MCP服务器

CherrySudio配置MCP服务器 &#xff08;一&#xff09;Cherry Studio介绍&#xff08;二&#xff09;MCP服务环境搭建&#xff08;1&#xff09;环境准备&#xff08;2&#xff09;依赖组件安装<1> Bun和UV安装 &#xff08;3&#xff09;MCP服务器使用<1> 搜索MCP…...

第五节:React Hooks进阶篇-如何用useMemo/useCallback优化性能

反模式&#xff1a;滥用导致的内存开销React 19编译器自动Memoization原理 React Hooks 性能优化进阶&#xff1a;从手动到自动 Memoization &#xff08;基于 React 18 及以下版本&#xff0c;结合 React 19 新特性分析&#xff09; 一、useMemo/useCallback 的正确使用场景…...

【Qt】QWidget 核⼼属性详解

&#x1f351;个人主页&#xff1a;Jupiter. &#x1f680; 所属专栏&#xff1a;QT 欢迎大家点赞收藏评论&#x1f60a; 目录 &#x1f3dd; 一.相关概念&#x1f3a8;二. 核⼼属性概览&#x1f344;2.1 enabled&#x1f96d;2.2geometry&#x1f338; 2.3 windowTitle&#…...

如何知道raid 有问题了

在 Rocky Linux 8 上&#xff0c;你的服务器使用了 RAID5&#xff08;根据 lsblk 输出&#xff0c;/dev/sda3、/dev/sdb1 和 /dev/sdc1 组成 md127 RAID5 阵列&#xff09;。为了监控 RAID5 阵列中磁盘的健康状态&#xff0c;并及时发现某块磁盘损坏&#xff0c;可以通过以下方…...

操作系统之shell实现(上)

&#x1f31f; 各位看官好&#xff0c;我是maomi_9526&#xff01; &#x1f30d; 种一棵树最好是十年前&#xff0c;其次是现在&#xff01; &#x1f680; 今天来学习C语言的相关知识。 &#x1f44d; 如果觉得这篇文章有帮助&#xff0c;欢迎您一键三连&#xff0c;分享给更…...

精益数据分析(3/126):用数据驱动企业发展的深度解析

精益数据分析&#xff08;3/126&#xff09;&#xff1a;用数据驱动企业发展的深度解析 大家好&#xff01;一直以来&#xff0c;我都坚信在当今竞争激烈的商业环境中&#xff0c;数据是企业获得竞争优势的关键。最近深入研究《精益数据分析》这本书&#xff0c;收获颇丰&…...

React 18/19 使用Ant Design全局弹窗message

react 18 及以上&#xff0c;拥有并发模式&#xff0c;不允许在渲染过程中直接触发副作用&#xff08;如弹窗、网络请求等&#xff09;&#xff0c;应将其放至 useEffect 中&#xff0c;确保其在渲染完成后调用 useEffect(() > {message.success(操作成功&#xff01;);}, …...

【spark3.2.4】--完全分布式集群搭建

一、spark-env.sh 文件配置&#xff08;操作路径&#xff1a;$SPARK_HOME/conf/spark-env.sh&#xff09; 如果还没创建&#xff1a; cp $SPARK_HOME/conf/spark-env.sh.template $SPARK_HOME/conf/spark-env.sh然后编辑&#xff08;比如用 vim&#xff09;&#xff1a; vim…...

Web3技术下数字资产数据保护的实践探索

在这个信息爆炸的时代&#xff0c;数字资产已经成为我们生活中不可或缺的一部分。随着Web3技术的兴起&#xff0c;它以其去中心化、透明性和安全性的特点&#xff0c;为数字资产的管理和保护提供了新的解决方案。本文将探讨Web3技术在数字资产数据保护方面的实践探索&#xff0…...

灰度共生矩阵(GLCM)简介

灰度共生矩阵(GLCM)简介 1. 基本概念 灰度共生矩阵(Gray-level Co-occurrence Matrix, GLCM)是一种用于分析图像纹理特征的统计方法。它通过计算图像中特定空间关系的像素对出现的频率,来描述纹理的规律性1。 核心思想:统计图像中相距为d、方向为θ的两个像素点,分别具…...

基于javaEE+jqueryEasyUi+eclipseLink+MySQL的课程设计客房管理信息系统

1. 系统概述 1.1 系统功能概述 1)客户管理。能够增加一个客户&#xff0c;包括&#xff1a;身份证号、客户名称、出生年月、性别、联系电话、邮箱、会员类别等信息&#xff0c;默认会员类别为空&#xff1b;能够修改和删除客户信息&#xff1b;能够根据客户名称、联系电话查询…...

3款本周高潜力开源AI工具(多模态集成_隐私本地化)

本周聚焦 AI 技术领域&#xff0c;为开发者精选 3 款兼具创新性与实用性的开源项目。这些项目覆盖图像生成、智能助手、大语言模型框架等方向&#xff0c;通过技术突破解决开发痛点&#xff0c;助力开发者高效构建智能应用。 更多精彩科技推荐请点击->&#xff1a;更多精彩科…...

第一期第10讲

Linux常用的压缩文件扩展名有 .tar, .tar.bz2, .tar.gz 使用gzip压缩和解压缩 对单个文件压缩&#xff1a; gzip a.c //压缩a.c为a.c.gz gzip -d a.c.gz //解压缩为a.c 对文件夹压缩&#xff1a; gzip -r test //对test文件夹里的文件进行压缩&#xff0c;不对test进行压缩…...

计算方法在单细胞数据分析中的应用及AI拓展

单细胞技术的出现彻底革新了我们对生物系统的理解&#xff0c;揭示了看似同质的细胞群体内部复杂的异质性。为了从这些技术产生的大量复杂数据中提取有意义的见解&#xff0c;精密的计算方法是不可或缺的。 AI拓展 单细胞数据分析的核心在于处理和解释高维度数据的能力&#…...

如何配置环境变量HADOOP_HOMEM、AVEN_HOME?不配置会怎么样

以下是在不同操作系统中配置 HADOOP_HOME 和 JAVA_HOME 环境变量的方法&#xff0c;以及不配置可能产生的后果&#xff1a; 配置 HADOOP_HOME - Windows系统&#xff1a;下载并解压Hadoop安装包&#xff0c;然后右键“此电脑”&#xff0c;选择“属性”&#xff0c;点击“高级…...

【现代深度学习技术】循环神经网络03:语言模型和数据集

【作者主页】Francek Chen 【专栏介绍】 ⌈ ⌈ ⌈PyTorch深度学习 ⌋ ⌋ ⌋ 深度学习 (DL, Deep Learning) 特指基于深层神经网络模型和方法的机器学习。它是在统计机器学习、人工神经网络等算法模型基础上&#xff0c;结合当代大数据和大算力的发展而发展出来的。深度学习最重…...

【学习笔记】Taming 3DGS泛读

原文链接&#xff1a;https://arxiv.org/abs/2406.15643 代码链接&#xff1a;https://github.com/nullptr81/3dgs-accel 一、学习内容 1.研究背景 3DGS在新视角合成&#xff08;NVS&#xff09;中表现优异&#xff0c;但优化过程低效&#xff1a; 存在 1&#xff09;资源需…...

SAP系统交货已完成标识

问题&#xff1a;交货已完成标识 现象&#xff1a;采购订单一直处于未完成交货状态&#xff0c;及交货完成标识处于非勾选状态 原因&#xff1a;采购订单交货完成标识勾会在两种情况下勾选&#xff0c; a.交货数量在容差范围内&#xff1b; b.手动勾选。 某些特殊情况&#xf…...

【正点原子STM32MP257连载】第四章 ATK-DLMP257B功能测试——音频测试 #ES8388 #录音测试

1&#xff09;实验平台&#xff1a;正点原子ATK-DLMP257B开发板 2&#xff09;浏览产品&#xff1a;https://www.alientek.com/Product_Details/135.html 3&#xff09;全套实验源码手册视频下载&#xff1a;正点原子资料下载中心 文章目录 第四章 ATK-DLMP257B功能测试——音频…...

WPF 使用 DI EF CORE SQLITE

WPF 使用 DI EF CORE SQLITE 1.安装 nuget包 <PackageReference Include"Microsoft.EntityFrameworkCore.Sqlite" Version"9.0.4" />2.创建DbContext的实现类&#xff0c;创建有参构造函数 public XXContext(DbContextOptions<XXXContext> o…...

探索鸿蒙沉浸式:打造无界交互体验

一、鸿蒙沉浸式简介 在鸿蒙系统中&#xff0c;沉浸式是一种极具特色的设计理念&#xff0c;它致力于让用户在使用应用时能够全身心投入到内容本身&#xff0c;而尽可能减少被系统界面元素的干扰。通常来说&#xff0c;就是将应用的内容区巧妙地延伸到状态栏和导航栏所在的界面…...

Linux红帽:RHCSA认证知识讲解(十 三)在serverb上破解root密码

Linux红帽&#xff1a;RHCSA认证知识讲解&#xff08;十 三&#xff09;在serverb上破解root密码 前言操作步骤 前言 在红帽 Linux 系统的管理工作中&#xff0c;系统管理员可能会遇到需要重置 root 密码的情况。本文将详细介绍如何通过救援模式进入系统并重新设置 root 密码。…...

【网络安全】谁入侵了我的调制解调器?(一)

文章目录 我被黑了159.65.76.209,你是谁?黑客攻击黑客?交出证据三年后我被黑了 两年前,在我家里使用家庭网络远程办公时,遇到了一件非常诡异的事情。当时,我正在利用一个“盲 XXE 漏洞”,这个漏洞需要借助一个外部 HTTP 服务器来“走私”文件。为了实现这一点,我在 AW…...

阿里一面:Nacos配置中心交互模型是 push 还是 pull ?(原理+源码分析)

对于Nacos大家应该都不太陌生&#xff0c;出身阿里名声在外&#xff0c;能做动态服务发现、配置管理&#xff0c;非常好用的一个工具。然而这样的技术用的人越多面试被问的概率也就越大&#xff0c;如果只停留在使用层面&#xff0c;那面试可能要吃大亏。 比如我们今天要讨论的…...

MySQL 慢查询日志深入分析与工具实战(mysqldumpslow pt-query-digest)

&#x1f3af; 学习目标 • ✅ 熟悉慢查询日志结构与核心字段 • ✅ 掌握日志开启与 SQL 记录机制 • ✅ 使用 pt-query-digest 工具进行分析 • ✅ 解读分析结果并提出优化建议 &#x1f4c2; 基本概念 项目 内容说明 功能 记录执行时间超过阈值的 SQL 启动参数…...

JVM:垃圾回收

一、垃圾回收概述 &#xff08;1&#xff09;垃圾回收主要解决的问题 内存溢出&#xff1a;当程序在运行过程中&#xff0c;所需的内存超出了 JVM 被分配到的内存空间时&#xff0c;就会发生内存溢出。垃圾回收会将不再被引用的对象进行回收&#xff0c;释放内存空间&#xf…...

与AI深度融合的Go开发框架sponge,解决使用cursor、trae等AI辅助编程工具开发项目时的部分痛点

摘要 AI 编程助手在近几年快速发展&#xff0c;帮助开发者提升了开发效率。然而&#xff0c;通用 AI 工具往往难以精准落地到具体业务与框架中。本文介绍了一款与 Go 框架深度融合的 AI 编程工具 —— sponge AI 助手。它不仅理解框架的结构&#xff0c;还能按照标准化流程自动…...

《AI大模型应知应会100篇》第21篇:Prompt设计原则:让大模型精准理解你的需求

第21篇&#xff1a;Prompt设计原则&#xff1a;让大模型精准理解你的需求 摘要 在与大模型交互时&#xff0c;如何高效地表达需求是决定输出质量的关键。本文将系统介绍高效Prompt设计的核心原则和方法论&#xff0c;并通过实战代码案例详细解释每个核心知识点&#xff0c;帮助…...

【更新完毕】2025泰迪杯数据挖掘竞赛A题数学建模思路代码文章教学:竞赛论文初步筛选系统

完整内容请看文末最后的推广群 基于自然语言处理的竞赛论文初步筛选系统 基于多模态分析的竞赛论文自动筛选与重复检测模型 摘要 随着大学生竞赛规模的不断扩大&#xff0c;参赛论文的数量激增&#xff0c;传统的人工筛选方法面临着工作量大、效率低且容易出错的问题。因此&…...

[Windows] 电脑自动备份插入的U盘数据

[Windows] 电脑自动备份U盘数据 链接&#xff1a;https://pan.xunlei.com/s/VONyazSEIqhnzZCHRlio9Vw2A1?pwdcmhc# [Windows] 电脑自动备份插入的U盘数据...

《JVM考古现场(二十一):奇点黎明·在事件视界编译时空曲率》

目录 楔子&#xff1a;事件视界警报 上卷时空曲率引擎 第一章&#xff1a;volatile场方程重构 第二章&#xff1a;synchronized黑洞能层 番外篇&#xff1a;时空涟漪观测站 中卷量子逃逸分析 第三章&#xff1a;柯西视界稳定性证明 第四章&#xff1a;白洞负熵连接 实战…...

list的一些常用接口

其实list的接口和前面的string和vector基本都是一样的&#xff0c;用法也基本类似&#xff0c;我们还是挑几个讲讲吧。 一.常用的接口 1.1 push_back 图中是一个空参构造加上一个push_back的使用&#xff0c;这两个接口的使用还是很简单的&#xff0c;看一下即可。下面是迭代器…...

芯洲SCT2434AQFPAR:3.6V-36V Vin, 3.5A, 高效率同步降压DCDC转换器

特性&#xff1a; AEC-Q100合格&#xff0c;结果如下&#xff1a;-器件温度等级1&#xff1a;-40C至125C环境工作温度范围宽输入电压范围&#xff1a;3.6V-36V持续输出电流3.5A 1V1%反馈参考电压集成60mΩ高侧功率MOSFET和36mΩ低侧功率MOSFET轻载PSM工作模式在睡眠模式下具有…...

单例模式:懒汉和饿汉

目录 一、关于设计模式 二、单例模式是什么 2.1 饿汉模式 2.2 懒汉模式 三、单例模式和多线程 3.1 饿汉模式 3.2 懒汉模式 一、关于设计模式 单例模式是一种设计模式&#xff0c;说它之前先来聊聊设计模式是什么。 设计模式&#xff0c;类似于于棋谱&#xff08;大佬把…...

第八节:React HooksReact 18+新特性-React Server Components (RSC) 工作原理

• 与SSR区别&#xff1a;零客户端JS、服务端数据直出 • 搭配Next.js 14使用场景 React Server Components (RSC) 工作原理及 Next.js 14 应用场景解析 一、RSC 核心工作原理 React Server Components (RSC) 是 React 18 引入的颠覆性特性&#xff0c;其设计目标是 服务端与…...

Spark-SQL核心编程3

数据加载与保存 通用方式&#xff1a; SparkSQL 提供了通用的保存数据和数据加载的方式。这里的通用指的是使用相同的API&#xff0c;根据不同的参数读取和保存不同格式的数据&#xff0c;SparkSQL 默认读取和保存的文件格式为parquet 数据加载方法&#xff1a; spark.read.lo…...

利用XShell 创建隧道(tunnel)在本地可视化远程服务器上的Visdom

1. 创建隧道 打开Xshell&#xff0c;选择你想要操作的终端&#xff0c;单击右键 -> 选择属性 打开属性对话框后&#xff0c;单击添加按钮。 在弹出的对话框中&#xff0c;先填写自己本地的浏览器的地址以及对应的端口号。然后呢&#xff0c;再填写autod远程服务器的地址和…...

React 高级特性与最佳实践

在掌握了 React 的基础知识后&#xff0c;我们可以进一步探索 React 的高级特性和最佳实践。这些特性将帮助你构建更高效、可维护和可扩展的 React 应用。本文重点介绍 Hooks、Context、Refs 和高阶组件等核心高级特性。 1. Hooks&#xff1a;函数组件的强大工具 Hooks 是 Rea…...

考研数据结构之图(一)(包含真题及解析)

考研数据结构之图的存储与基本操作&#xff1a;邻接矩阵、邻接表、十字链表、邻接多重表 图&#xff08;Graph&#xff09;是数据结构中的重要非线性结构&#xff0c;广泛应用于网络路由、社交关系分析等领域。本文将详细讲解图的四种主要存储方式——邻接矩阵法、邻接表法、十…...