11.Python文件操作
在Python编程中文件操作是最基础且重要的功能之一。无论是处理配置文件、读取数据文件还是写入日志都离不开文件操作。本文将通过实际代码示例全面讲解Python文件操作的核心知识点。一、文件操作1. 文件打开与关闭1.1 打开文件在Python中你可以使用open()函数来打开文件。以下是一个简单的例子# 打开文件默认为只读模式 file_path example.txt with open(file_path, r) as file: # 执行文件操作例如读取文件内容 file_content file.read() print(file_content) # 文件在with块结束后会自动关闭无需显式关闭文件在上述示例中•example.txt是文件的路径和名称你可以根据实际情况修改为你想要打开的文件。•r表示只读模式。如果你想要写入文件可以使用w模式如果想要追加内容可以使用a模式等。•with open(...) as file: 是使用上下文管理器的方式确保文件在使用后被正确关闭即使在处理文件时发生异常也能保证关闭。1.2 关闭文件在 Python 中关闭文件有两种主要的方法1.2.1 使用 with 语句with语句是一种上下文管理器当它的代码块执行完毕时会自动关闭文件。这是推荐的方式因为它确保文件在使用完毕后被正确关闭即使发生异常也能保证关闭。file_path example.txt with open(file_path, r) as file: # 执行文件操作例如读取文件内容 file_content file.read() print(file_content) # 文件在这里已经被自动关闭1.2.2 使用 close() 方法你可以显式调用文件对象的close()方法来关闭文件。这种方法适用于一些特殊情况但相对来说不如with语句简洁和安全。file_path example.txt file open(file_path, r) try: # 执行文件操作例如读取文件内容 file_content file.read() print(file_content) finally: file.close()在使用with语句时不需要显式调用close()方法。如果你在代码中打开了文件而没有使用with请确保在适当的地方调用close()以关闭文件以避免资源泄漏。2. 访问模式及说明访问模式说明r以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。w打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在创建新文件。a打开一个文件用于追加。如果该文件已存在文件指针将会放在文件的结尾。也就是说新的内容将会被写入到已有内容之后。如果该文件不存在创建新文件进行写入。rb以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。wb以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在创建新文件。ab以二进制格式打开一个文件用于追加。如果该文件已存在文件指针将会放在文件的结尾。也就是说新的内容将会被写入到已有内容之后。如果该文件不存在创建新文件进行写入。r打开一个文件用于读写。文件指针将会放在文件的开头。w打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在创建新文件。a打开一个文件用于读写如果该文件已存在文件指针将会放在文件的结尾。文件打开时会是追加模式。如果改文件不存在创建新文件用于读写。rb以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头wb以二进制格式打开一个文件用于读写。如果改文件已存在则会覆盖。如果改文件不存在创建新文件。ab以二进制格式打开一个文件用于追加。如果该文件已存在文件指针将会放在文件的结尾。如果改文件不存在创建新文件用于读写。二、文件读写1. 写数据write写入数据通常涉及将信息保存到文件、数据库或其他持久性存储介质中。以下是一些常见的数据写入场景的示例1.1 写入文本文件使用内置的open函数来打开文件并写入内容。确保使用适当的模式例如w表示写入。file_path example.txt # 写入文件 with open(file_path, w) as file: file.write(Hello, this is some data.)1.2 写入CSV文件使用csv模块来写入CSV格式的文件。import csv csv_file_path example.csv data [[Name, Age, Occupation], [John Doe, 30, Engineer], [Jane Smith, 25, Designer]] with open(csv_file_path, w, newline) as csvfile: csv_writer csv.writer(csvfile) csv_writer.writerows(data)1.3 写入JSON文件使用内置的json模块来写入JSON格式的文件。import json json_file_path example.json data {name: John Doe, age: 30, occupation: Engineer} with open(json_file_path, w) as jsonfile: json.dump(data, jsonfile)1.4 写入数据库使用数据库连接库如sqlite3、mysql-connector-python等与相应的数据库进行交互。import sqlite3 # 连接到SQLite数据库假设有一个名为 example.db 的数据库 conn sqlite3.connect(example.db) # 创建一个游标对象 cursor conn.cursor() # 执行SQL插入语句 cursor.execute(INSERT INTO users (name, age, occupation) VALUES (?, ?, ?), (John Doe, 30, Engineer)) # 提交更改 conn.commit() # 关闭连接 conn.close()2. 读数据read读取数据通常涉及从文件、数据库或其他存储介质中检索信息。以下是一些读取数据的常见示例2.1 读取文本文件使用内置的open函数来打开文件并读取内容。file_path example.txt # 读取文件 with open(file_path, r) as file: data file.read() print(data)2.2 读取CSV文件使用csv模块来读取CSV格式的文件。import csv csv_file_path example.csv # 读取CSV文件 with open(csv_file_path, r) as csvfile: csv_reader csv.reader(csvfile) for row in csv_reader: print(row)2.3 读取JSON文件使用内置的json模块来读取JSON格式的文件。import json json_file_path example.json # 读取JSON文件 with open(json_file_path, r) as jsonfile: data json.load(jsonfile) print(data)2.4 从数据库中读取数据使用数据库连接库如sqlite3、mysql-connector-python等与相应的数据库进行交互。import sqlite3 # 连接到SQLite数据库假设有一个名为 example.db 的数据库 conn sqlite3.connect(example.db) # 创建一个游标对象 cursor conn.cursor() # 执行SQL查询语句 cursor.execute(SELECT * FROM users) # 检索所有行 rows cursor.fetchall() # 打印每一行 for row in rows: print(row) # 关闭连接 conn.close()2. 读数据readlinesreadlines是 Python 中用于读取文件的方法之一它用于逐行读取文件内容并将每一行作为字符串存储在一个列表中。下面是对readlines方法的详细解释使用 readlines 方法的基本语法代码语言javascriptAI代码解释with open(file.txt, r) as file: lines file.readlines()解释•open(file.txt, r): 打开文件file.txt以供读取。第一个参数是文件名第二个参数是打开文件的模式。r表示只读模式。•with ... as ...: 使用with语句可以确保在读取完成后自动关闭文件不需要显式调用file.close()。•lines file.readlines():readlines方法用于读取文件的所有行并将每一行作为一个字符串存储在列表lines中。• 每个列表元素对应文件中的一行文本。你可以使用列表索引来访问特定行例如lines[0]表示文件的第一行。例子假设 ‘file.txt’ 包含以下内容代码语言javascriptAI代码解释Hello, this is line 1. This is line 2. And this is line 3.使用 readlines 后with open(file.txt, r) as file: lines file.readlines() # lines 现在是一个包含每一行文本的列表 print(lines) # 输出 # [Hello, this is line 1.\n, This is line 2.\n, And this is line 3.\n] # 访问特定行 print(lines[0].strip()) # 输出Hello, this is line 1.注意事项• 每一行的末尾都包含换行符\n你可以使用strip()方法去除这些额外的空白字符。•readlines方法适用于处理包含多行文本的文件但对于大型文件可能需要考虑逐行读取而不是将整个文件加载到内存中。这可以通过循环遍历文件对象来实现而不是使用readlines。3. 读数据readlinereadline 是 Python 中用于读取文件的方法之一它用于逐行读取文件内容并返回文件中的一行作为字符串。以下是对 readline 方法的详细解释 使用 readline 方法的基本语法with open(file.txt, r) as file: line file.readline()解释•open(file.txt, r): 打开文件file.txt以供读取。第一个参数是文件名第二个参数是打开文件的模式。r表示只读模式。•with ... as ...: 使用with语句可以确保在读取完成后自动关闭文件不需要显式调用file.close()。•line file.readline():readline方法用于读取文件的一行并将该行作为一个字符串存储在变量line中。例子假设 ‘file.txt’ 包含以下内容Hello, this is line 1. This is line 2. And this is line 3.使用 readline 后with open(file.txt, r) as file: line1 file.readline() line2 file.readline() line3 file.readline() print(line1) # 输出Hello, this is line 1. print(line2) # 输出This is line 2. print(line3) # 输出And this is line 3.注意事项• 每个readline调用都会读取文件的下一行。• 返回的字符串包含行末尾的换行符\n。如果不需要换行符可以使用strip()方法去除它。• 当文件读取完毕后readline将返回空字符串 ‘’因此可以在循环中使用while line ! 来逐行读取整个文件。循环读取整个文件with open(file.txt, r) as file: line file.readline() while line ! : print(line.strip()) # 去除换行符 line file.readline()这个循环将逐行读取整个文件直到文件末尾。4. readlines 和 readline的区别readlines和readline是 Python 中用于读取文件的两种不同方法它们之间有一些重要的区别4.1 readlines 方法• 返回类型readlines方法返回一个包含文件所有行的列表其中每个元素都是文件中的一行文本字符串。• 使用情况 适用于处理包含多行文本的文件可以一次性将整个文件加载到内存中。这种方法适用于文件较小可以完全装入内存的情况。• 例子with open(file.txt, r) as file: lines file.readlines()4.2 readline 方法• 返回类型readline方法每次调用只返回文件中的一行作为字符串。如果再次调用将返回下一行。当文件读取完毕后返回空字符串 ‘’。• 使用情况 适用于逐行处理大型文件可以有效地降低内存使用。因为它一次只读取一行可以在循环中逐行处理文件而不必将整个文件加载到内存中。• 例子with open(file.txt, r) as file: line file.readline() while line ! : print(line.strip()) # 去除换行符 line file.readline()4.3 区别总结•readlines一次性读取整个文件的所有行并返回一个包含所有行的列表。•readline逐行读取文件每次调用返回文件中的一行适用于处理大型文件减少内存占用。•readlines返回包含换行符的每一行而readline返回单独的行需要手动去除换行符。选择使用哪个方法取决于文件的大小和处理需求。如果文件较小可以完全装入内存使用readlines如果文件较大可以逐行处理使用readline。三、文件的相关操作1. 文件重命名Python 文件重命名是文件管理中的一个基本操作可以通过 Python 的内置库来实现。以下是一个超详细的入门指南介绍如何使用 Python 重命名文件1.2 导入必要的库首先您需要导入 Python 的os库它提供了许多与操作系统交互的函数。import os1.2 准备文件列表要重命名文件您需要先列出指定目录中的所有文件。可以使用os.listdir()函数来获取目录中的文件列表。# 列出指定目录中的所有文件和文件夹 files os.listdir(path_to_directory)1.3 遍历文件列表接着您需要遍历文件列表对每一个文件进行重命名。for file in files: # 获取文件的完整路径 full_path os.path.join(path_to_directory, file) # 检查是否是文件 if os.path.isfile(full_path): # 新的文件名 new_filename new_name # 重命名操作 os.rename(full_path, os.path.join(path_to_directory, new_filename)) print(fRenamed {file} to {new_filename})1.4 异常处理在重命名文件时可能会出现各种异常例如目标文件已存在、没有足够权限等。为了确保程序的健壮性应该添加异常处理。try: for file in files: # ...上面的代码 except OSError as e: print(fError occurred: {e})1.5 完整的脚本示例import os # 指定要重命名文件的目录 directory path_to_directory # 列出目录中的所有文件 files os.listdir(directory) # 遍历文件列表并进行重命名 for file in files: if os.path.isfile(os.path.join(directory, file)): # 设定新的文件名 new_filename new_name # 重命名文件 try: os.rename( os.path.join(directory, file), os.path.join(directory, new_filename) ) print(fRenamed {file} to {new_filename}) except OSError as e: print(fError renaming {file}: {e})1.6 注意安全性和效率在批量重命名文件时应确保• 不要同时进行多个重命名操作以避免潜在的竞争条件。• 确保目标目录存在避免在重命名时创建不存在的目录。• 考虑到操作系统对文件重命名的限制例如在 Windows 中文件名不能超过 255 个字符而在 Unix/Linux 中则没有这个限制。1.7 高级用法对于更复杂的重命名任务您可以使用正则表达式或者其他文本处理方法来生成新的文件名。import os import re # 指定目录 directory path_to_directory # 列出目录中的所有文件 files os.listdir(directory) # 遍历文件列表并进行重命名 for file in files: if os.path.isfile(os.path.join(directory, file)): # 使用正则表达式匹配文件名模式并替换为新的模式 new_filename re.sub(r\d, new_prefix, file) # 重命名文件 try: os.rename( os.path.join(directory, file), os.path.join(directory, new_filename) ) print(fRenamed {file} to {new_filename}) except OSError as e: print(fError renaming {file}: {e})这个脚本会将指定目录中所有以数字开头的文件重命名为新的前缀。2. 删除文件在Python中删除文件是一个相对简单的操作。我们可以使用os库中的os.remove()函数来实现。以下是一个超详细的入门指南介绍如何使用Python删除文件2.1 导入必要的库首先您需要导入Python的os库它提供了许多与操作系统交互的函数。import os2.2 准备文件路径要删除文件您需要知道要删除的文件的路径。file_path path_to_file2.3 检查文件是否存在在删除文件之前最好检查该文件是否存在以避免错误。if os.path.isfile(file_path): print(fFile {file_path} exists, proceed to delete.) else: print(fFile {file_path} does not exist, skip deletion.)**2.4 执行删除操作如果文件存在您可以使用os.remove()函数来删除它。try: os.remove(file_path) print(fFile {file_path} deleted successfully.) except OSError as e: print(fError occurred: {e})2.5 完整的脚本示例import os # 指定要删除的文件的目录 file_path path_to_file # 检查文件是否存在 if os.path.isfile(file_path): print(fFile {file_path} exists, proceed to delete.) else: print(fFile {file_path} does not exist, skip deletion.) # 执行删除操作 try: os.remove(file_path) print(fFile {file_path} deleted successfully.) except OSError as e: print(fError occurred: {e})2.6 注意安全性和效率在批量删除文件时应确保• 不要同时进行多个删除操作以避免潜在的竞争条件。• 确保目标目录存在避免在删除时创建不存在的目录。• 考虑到操作系统对文件删除的操作限制例如在 Windows 中文件名不能超过 255 个字符而在 Unix/Linux 中则没有这个限制。 通过以上步骤您应该能够掌握如何使用Python删除文件。3. 创建文件在Python中创建文件是一个相对简单的操作。我们可以使用os库中的os.open()函数或者with语句来创建文件。以下是一个超详细的入门指南介绍如何使用Python创建文件3.1 导入必要的库首先您需要导入Python的os库它提供了许多与操作系统交互的函数。import os3.2 准备文件路径要创建文件您需要知道要创建的文件的路径。file_path path_to_file3.3 检查文件路径是否存在在创建文件之前最好检查该文件路径是否存在以避免覆盖其他文件。if not os.path.exists(file_path): print(fFile path {file_path} does not exist, proceed to create.) else: print(fFile path {file_path} already exists, skip creation.)3.4 执行创建操作如果文件路径不存在您可以使用os.open()函数来创建文件。try: with open(file_path, w) as f: print(fFile {file_path} created successfully.) except IOError as e: print(fError occurred: {e})这里我们使用with语句来确保文件在操作完成后会被正确关闭。w参数表示以写入模式打开文件如果文件不存在会创建一个新文件。3.5 完整的脚本示例import os # 指定要创建的文件的目录 file_path path_to_file # 检查文件路径是否存在 if not os.path.exists(file_path): print(fFile path {file_path} does not exist, proceed to create.) else: print(fFile path {file_path} already exists, skip creation.) # 执行创建操作 try: with open(file_path, w) as f: print(fFile {file_path} created successfully.) except IOError as e: print(fError occurred: {e})3.6 注意安全性和效率在创建文件时应确保• 拥有创建文件的足够权限。• 避免在内存不足的情况下创建大型文件。 通过以上步骤您应该能够掌握如何使用Python创建文件。4. 获取当前目录在Python中我们可以使用os库中的os.getcwd()函数来获取当前目录的路径。以下是一个示例import os current_directory os.getcwd() print(fCurrent directory is: {current_directory})这将会打印出当前Python脚本所在目录的路径。四、示例1. 目录.txt自动清洗1.1 需要在二级标题所在行最前面空4个格子一级标题不用1.2 需要在章和节字的后面加上一个空格1.3 需要在页码前面加上符号# 获取桌面路径 import os import re desktop_path os.path.join(os.path.expanduser(~), Desktop) # 目标文件路径 file_path os.path.join(desktop_path, 目录.txt) # 打开文件并读取内容 with open(file_path, r, encodingutf-8) as file: lines file.readlines() modified_lines [] for line in lines: # 去除空格 line line.replace( , ) if len(line) 1: continue # 使用正则表达式在章或节后面添加一个空格仅在后面没有空格的情况下 line re.sub(r(章|节)(?![ ]), r\1 , line) # 在小数点后添加空格 line re.sub(r(\.\d), r\1 , line) if 章 not in line: # 二级标题添加4个空格 line * 4 line # 匹配并去除最外层的英文括号 pattern_en r\(([\d\s])\) line re.sub(pattern_en, r\1, line) # 匹配并去除最外层的中文括号及其内部内容包括除数字和空格以外的字符 pattern r([^]) line re.sub(pattern, r\1, line) # 确保每行只有一个 if not in line: # 在页码数字前添加 只在行尾 line re.sub(r(\d)$, r\1, line) # 去除中文汉字和整体符号左边的冗余符号 pattern r([\u4e00-\u9fff])[^\w\s] line re.sub(pattern, r\1, line) modified_lines.append(line) # 将修改后的内容写回文件 with open(file_path, w, encodingutf-8) as file: file.writelines(modified_lines) # 读取文件内容 with open(file_path, r, encodingutf-8) as file: content file.read() print(content)2. 批量修改文件夹下的文件命名你可以使用Python的os模块来实现对文件名的批量修改结合字符串操作来确保文件名中的规定格式。以下是一个示例代码import os # 指定目录路径 directory_path r目标文件夹绝对路径 # 获取目录下所有文件名 files os.listdir(directory_path) # 遍历文件 for file_name in files: # 构建完整的文件路径 file_path os.path.join(directory_path, file_name) # 检查文件是否是图片文件并且文件名中包含下划线 if file_name.lower().endswith((.png, .jpg, .jpeg, .gif)) and _ in file_name: # 分割文件名以下划线为界 parts file_name.split(_) # 确保分割后的第一部分为00159231127 if parts[0] ! 00159231127: # 构建新文件名 new_file_name 00159231127 _ _.join(parts[1:]) # 构建新文件路径 new_file_path os.path.join(directory_path, new_file_name) # 重命名文件 os.rename(file_path, new_file_path) print(fRenamed: {file_name} -gt; {new_file_name})在上述代码中1.使用os.listdir获取目录下的所有文件名然后遍历这些文件名。 2.通过os.path.join构建完整的文件路径确保路径的正确性。 3.检查文件是否是图片文件以.png, .jpg, .jpeg, .gif结尾的文件并且文件名中包含下划线。 4.使用split(_)分割文件名确保分割后的第一部分为00159231127。 5.构建新文件名并使用 os.rename 来重命名文件。在运行前请确保备份文件或者在测试环境中运行以免意外损坏文件。3. 检测同级目录下是否存在同名文件夹检测 目标路径 下的文件夹命名前5位是否存在一样的如果一样打印出来你可以使用Python来检查指定目录下的文件夹查找前5位命名相同的文件夹。以下是一个示例代码import os # 指定目录路径 directory_path r目标路径 # 获取目录下所有文件夹名 folders [folder for folder in os.listdir(directory_path) if os.path.isdir(os.path.join(directory_path, folder))] # 创建一个空字典用于存储前5位相同的文件夹名 same_prefix_folders {} # 遍历文件夹 for folder in folders: # 获取前5位文件夹名 prefix folder[:5] # 检查前5位文件夹名是否已经在字典中 if prefix in same_prefix_folders: # 将文件夹名添加到对应的键值中 same_prefix_folders[prefix].append(folder) else: # 若字典中没有该前5位文件夹名则创建键值对 same_prefix_folders[prefix] [folder] # 输出前5位相同的文件夹名 for prefix, folders in same_prefix_folders.items(): if len(folders) gt; 1: print(f前5位为 {prefix} 的文件夹有以下重复命名) print(, .join(folders))这段代码执行以下操作1.使用os.listdir获取指定目录下的所有文件夹名。 2.然后遍历这些文件夹名提取前 5 位名称并将具有相同前缀的文件夹放入一个字典中。 3.最后打印出前 5 位相同的文件夹名。1. 基础文件读取1.1 简单文件读取# 最基本的文件读取方式 f open(demo.txt) content f.read() print(content)这是最基础的文件读取方式但存在潜在问题如果文件编码与系统默认编码不匹配可能会出现乱码。1.2 循环读取文件内容# 使用循环逐行读取大文件 f open(demo.txt) for line in f: print(line)这种方法适合处理大文件因为它不会一次性将整个文件加载到内存中而是逐行读取。2. 编码处理与乱码解决2.1 指定文件编码# 明确指定编码格式避免乱码 f open(demo.txt, encodingutf-8) content f.read() print(content)在处理包含中文或其他非ASCII字符的文件时明确指定编码格式是避免乱码的关键。2.2 文件关闭的重要性# 显式关闭文件 f open(demo.txt) content f.read() print(content) f.close() # 必须显式关闭文件文件操作完成后必须关闭文件释放系统资源。如果忘记关闭文件可能导致资源泄露。3. 使用with语句推荐3.1 自动资源管理# 使用with语句文件会自动关闭 with open(demo.txt) as f: content f.read() print(content)这是Python文件操作的最佳实践。使用with语句可以确保文件在代码块执行完毕后自动关闭即使发生异常也能正确关闭。4. 文件打开模式详解4.1 只读模式默认# 文件必须存在否则会报错 with open(file.txt, r) as f: # 等同于 rt文本模式 content f.read()这是最常用的模式用于读取已存在的文件。4.2 写入模式# 如果文件存在会清空内容不存在则创建 with open(file.txt, w) as f: f.write(Hello World)注意此模式会覆盖文件原有内容使用时需谨慎。4.3 追加模式# 在文件末尾添加内容不覆盖原有数据 with open(file.txt, a) as f: f.write(\nNew line)适合日志记录等需要在文件末尾添加内容的场景。5. 文件系统操作5.1 目录列表import os # 列出指定目录中的所有文件和文件夹 files os.listdir(../filestudy) print(files)5.2 文件类型检查# 检查路径是否为文件 if not os.path.isfile(../filestudy): print(是文件) else: print(不是文件或文件不存在)6. 实际应用场景6.1 配置文件读取# 读取配置文件 config {} with open(config.ini, r, encodingutf-8) as f: for line in f: if in line: key, value line.strip().split(, 1) config[key] value6.2 日志记录# 追加模式记录日志 import datetime with open(app.log, a, encodingutf-8) as log_file: timestamp datetime.datetime.now().strftime(%Y-%m-%d %H:%M:%S) log_file.write(f[{timestamp}] 程序启动\n)6.3 大文件处理# 处理大文件避免内存溢出 with open(large_file.txt, r, encodingutf-8) as f: for line_number, line in enumerate(f, 1): # 处理每一行数据 processed_line line.strip() if processed_line: # 跳过空行 print(f第{line_number}行: {processed_line})7. 错误处理与最佳实践7.1 异常处理try: with open(nonexistent.txt, r) as f: content f.read() except FileNotFoundError: print(文件不存在) except PermissionError: print(没有文件读取权限) except Exception as e: print(f读取文件时发生错误: {e})7.2 最佳实践总结始终使用with语句确保文件正确关闭明确指定编码避免乱码问题处理大文件时使用迭代避免内存溢出添加异常处理提高程序健壮性选择合适的打开模式根据需求使用r/w/a等模式8. 扩展知识8.1 二进制文件操作# 处理图片、视频等二进制文件 with open(image.jpg, rb) as f: binary_data f.read()8.2 文件指针操作with open(file.txt, r) as f: content f.read() f.seek(0) # 回到文件开头 f.write(新的内容) # 覆盖开头部分

相关新闻

封神组合!finalCodecs+完美解码+PotPlayer,再也没有打不开的视频

封神组合!finalCodecs+完美解码+PotPlayer,再也没有打不开的视频

追剧、存资源、看高清大片,最崩溃的不是没资源,而是视频打不开😭 下载的蓝光原盘提示“缺少解码器”,老片RMVB格式黑屏无声音,4K视频卡顿掉帧、音画不同步,字幕乱码到看不懂,找播放器要么广告弹…

2026/7/5 3:56:30 阅读更多 →
【毕业设计】基于springboot+小程序的家教兼职系统小程序(源码+文档+远程调试,全bao定制等)

【毕业设计】基于springboot+小程序的家教兼职系统小程序(源码+文档+远程调试,全bao定制等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/5 12:41:13 阅读更多 →
【计算机毕业设计案例】基于springboot+小程序的睡眠健康管理系统小程序(程序+文档+讲解+定制)

【计算机毕业设计案例】基于springboot+小程序的睡眠健康管理系统小程序(程序+文档+讲解+定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/5/17 3:28:59 阅读更多 →

最新新闻

STM32F429ZI与PCF8591的ADC/DAC信号转换实战

STM32F429ZI与PCF8591的ADC/DAC信号转换实战

1. PCF8591与STM32F429ZI的信号转换方案概述在嵌入式系统开发中,模拟信号与数字信号的相互转换是常见需求。PCF8591作为一款集成了ADC和DAC功能的芯片,通过I2C接口与主控芯片通信,能够实现4通道模拟输入和1通道模拟输出。而STM32F429ZI作为ST…

2026/7/6 7:31:11 阅读更多 →
STM32与EEPROM数据存储方案及优化实践

STM32与EEPROM数据存储方案及优化实践

1. 项目背景与核心需求在嵌入式系统开发中,数据持久化存储是一个基础但至关重要的功能。STM32L4A6RG作为一款低功耗微控制器,其内部Flash虽然可以用于数据存储,但存在擦写次数有限(约1万次)和操作复杂的缺点。而M24C04…

2026/7/6 7:31:11 阅读更多 →
STM32与AD74413R实现高精度同步数据采集与输出方案

STM32与AD74413R实现高精度同步数据采集与输出方案

1. 项目背景与核心需求在工业自动化、测试测量和音频处理等领域,经常需要同时实现高精度模拟信号采集(ADC)和输出(DAC)的功能。传统方案通常需要分别使用独立的ADC和DAC芯片,这不仅增加了系统复杂度&#x…

2026/7/6 7:29:11 阅读更多 →
PCF8591与PIC18LF45K42信号转换系统设计

PCF8591与PIC18LF45K42信号转换系统设计

1. 项目背景与核心器件选型在工业控制和嵌入式系统设计中,信号转换是连接模拟世界与数字系统的关键桥梁。PCF8591作为一款集成了ADC和DAC功能的混合信号转换芯片,配合PIC18LF45K42这款高性能8位MCU,能够构建出高性价比的多通道信号处理系统。…

2026/7/6 7:29:10 阅读更多 →
智能体内存架构设计与实现:从短期记忆到长期记忆的完整工程方案

智能体内存架构设计与实现:从短期记忆到长期记忆的完整工程方案

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 在构建复杂AI应用时,你是否遇到过这样的困境:智能体(Agent)在处理长对话或多步骤任务时…

2026/7/6 7:29:10 阅读更多 →
13DOF传感器与TM4C123的嵌入式定位导航系统设计

13DOF传感器与TM4C123的嵌入式定位导航系统设计

1. 项目背景与核心需求在智能硬件和机器人领域,精准的定位导航能力一直是技术突破的关键瓶颈。传统方案往往面临两个主要痛点:一是单一传感器(如GPS或IMU)在复杂环境中可靠性不足;二是低功耗微控制器难以承载多传感器数…

2026/7/6 7:27:09 阅读更多 →

日新闻

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2与MySQL单元测试兼容性:5个关键SQL语句差异与规避方案1. 单元测试中的数据库兼容性挑战在Java开发领域,单元测试是保证代码质量的重要环节。当应用涉及数据库操作时,测试环境的搭建往往成为开发者的痛点。H2数据库因其轻量级、内存模式和快…

2026/7/6 0:01:17 阅读更多 →
Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘 【免费下载链接】rbtray A fork of RBTray from http://sourceforge.net/p/rbtray/code/. 项目地址: https://gitcode.com/gh_mirrors/rb/rbtray 你是否厌倦了Windows任务栏上密密麻麻的图标&…

2026/7/6 0:01:17 阅读更多 →
Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C 运行时库一键安装终极指南:告别DLL缺失烦恼 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过这样的情况:下载了…

2026/7/6 0:05:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/6 6:52:56 阅读更多 →

月新闻