news 2026/2/15 1:23:44

Python基础 使用with结构打开多个文件

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python基础 使用with结构打开多个文件

使用 with 结构打开多个文件的两种核心方式

with 语句的核心优势是自动管理文件资源—— 无论代码执行是否抛出异常,都会确保文件被正确关闭,这是比手动open()+close()更优的实践。打开多个文件主要有两种常用方式,可根据场景选择:

方式 1:逗号分隔(推荐,简洁高效)

适合打开文件数量少、操作逻辑简单的场景,语法简洁,一行即可声明多个文件句柄。

基础语法

python

with open(文件路径1, 模式, encoding="utf-8") as f1, open(文件路径2, 模式, encoding="utf-8") as f2: # 对f1、f2的操作代码

实战示例 1:同时读取两个文件

python

# 读取file1.txt和file2.txt的内容并打印 try: with open("file1.txt", "r", encoding="utf-8") as f1, open("file2.txt", "r", encoding="utf-8") as f2: # 读取文件1的全部内容 content1 = f1.read() print("【file1.txt 内容】") print(content1) # 读取文件2的全部内容 content2 = f2.read() print("\n【file2.txt 内容】") print(content2) except FileNotFoundError: print("错误:指定的文件不存在,请检查文件路径!") except UnicodeDecodeError: print("错误:文件编码不匹配,建议确认文件编码(如gbk)!")

实战示例 2:读取一个文件并写入另一个文件(文件复制)

python

# 将file1.txt的内容复制到file2.txt try: with open("file1.txt", "r", encoding="utf-8") as f_read, open("file2.txt", "w", encoding="utf-8") as f_write: # 读取源文件内容 content = f_read.read() # 写入目标文件(若file2.txt不存在则创建,存在则覆盖) f_write.write(content) print("文件复制完成!") except Exception as e: print(f"操作出错:{e}")
方式 2:嵌套 with 语句(逻辑清晰)

适合打开文件数量多、每个文件操作逻辑独立的场景,可读性更强,便于分步处理。

实战示例:嵌套操作 3 个文件

python

# 嵌套with:读取file1 → 写入file2 → 追加到file3 try: with open("file1.txt", "r", encoding="utf-8") as f1: content1 = f1.read() print("读取file1完成:", content1[:50], "...") # 只打印前50个字符 with open("file2.txt", "w", encoding="utf-8") as f2: f2.write(content1) print("写入file2完成") with open("file3.txt", "a", encoding="utf-8") as f3: f3.write(f"\n【追加内容】{content1[:20]}") print("追加到file3完成") except Exception as e: print(f"出错原因:{e}")

关键说明

  1. 文件模式选择
    • r:只读(默认),必须确保文件存在;
    • w:写入(覆盖原有内容),文件不存在则创建;
    • a:追加(在文件末尾写),文件不存在则创建;
    • r+:读写,需谨慎使用避免误写。
  2. 编码指定:务必添加encoding="utf-8",避免中文乱码(Windows/Linux 通用)。
  3. 异常处理:包裹try-except可捕获文件不存在、权限不足、编码错误等常见问题,避免程序崩溃。

总结

  1. with 结构打开多个文件有两种核心方式:逗号分隔(简洁)适合简单场景,嵌套 with(清晰)适合复杂逻辑。
  2. with 语句会自动调用文件的close()方法,无需手动关闭,是文件操作的最佳实践。
  3. 操作文件时必须指定编码(如 utf-8)并添加异常处理,这是避免中文乱码和程序崩溃的关键。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/7 12:13:57

FlicFlac:Windows平台上轻量级音频格式转换的终极解决方案

在数字音频日益普及的今天,我们经常面临一个普遍的问题:如何在不同设备和平台间无缝转换音频格式?FlicFlac作为一款专为Windows系统设计的便携式音频转换工具,以其简洁高效的特点成为了众多用户的首选。 【免费下载链接】FlicFlac…

作者头像 李华
网站建设 2026/2/14 16:42:22

百度UNIT功能弱?IndexTTS 2.0特性全面超越

百度UNIT功能弱?IndexTTS 2.0特性全面超越 在短视频日均产量突破千万条的今天,一个创作者最头疼的问题往往不是“拍什么”,而是“怎么配好音”。传统语音合成工具虽然能“说话”,但一到关键场景就露怯:口型对不上、情…

作者头像 李华
网站建设 2026/2/10 13:04:12

免费音频转换神器fre:ac:5分钟快速上手完整指南

免费音频转换神器fre:ac:5分钟快速上手完整指南 【免费下载链接】freac The fre:ac audio converter project 项目地址: https://gitcode.com/gh_mirrors/fr/freac 还在为不同设备间的音频格式兼容问题而烦恼吗?fre:ac这款完全免费的音频转换器将…

作者头像 李华
网站建设 2026/2/10 8:06:47

剪贴板粘贴:直接从其他应用复制文本到输入框

剪贴板粘贴:直接从其他应用复制文本到输入框 在语音合成工具日益普及的今天,内容创作者、教育工作者乃至普通用户都希望快速将一段文字转化为自然流畅的语音。然而,一个常被忽视却极为关键的体验瓶颈是——如何高效地把外部文本“搬”进系统&…

作者头像 李华
网站建设 2026/2/12 10:28:18

内存守护神:Memtest86+ 专业内存检测完全指南 [特殊字符]️

内存守护神:Memtest86 专业内存检测完全指南 🛡️ 【免费下载链接】memtest86plus memtest86plus: 一个独立的内存测试工具,用于x86和x86-64架构的计算机,提供比BIOS内存测试更全面的检查。 项目地址: https://gitcode.com/gh_m…

作者头像 李华
网站建设 2026/2/12 5:29:35

5大技巧快速上手fre:ac:免费音频转换全攻略

还在为不同设备播放音频格式不兼容而烦恼吗?fre:ac这款完全免费的音频转换工具,能够轻松解决你的音频格式转换需求。无论你是想将CD音乐转为MP3格式,还是需要将无损音频压缩为便携版本,这款开源音频转换器都能提供专业级的服务。 …

作者头像 李华