Python读写文件(文本/二进制)的方法详解与实战

Written by

in

文章目录
  • Python 的文件读写操作一般遵循以下 4 步: 打开文件(open()) 读/写文件(read() / write()) 关闭文件(close()) 可选:异常处理或使用上下文管理器 一个典型示例: # 打开文件(只读模式) f = open(“example.txt”, “r”, encoding=”utf-8″) # 读取内容 content = f.read() print(content) # 关闭文件 f.close()
  • open() 是文件操作的入口函数: open(file, mode=’r’, encoding=None) 参数 含义 file 文件路径 mode 打开模式(见下表) encoding 编码方式(常用 "utf-8") 常见文件打开模式 模式 含义 是否创建新文件 'r' 只读(默认) ❌ 'w' 只写(覆盖原内容) ✅ 'a' 追加写入 ✅ 'rb' 以二进制读取 ❌ 'wb' 以二进制写入(覆盖) ✅ 'ab' 以二进制追加写入 ✅ 'r+' 读写模式 ❌
  • Python 提供了多种读取方法,根据需求灵活选择。
  • 写文件也很简单: # 覆盖写入(原内容会被清空) with open(“output.txt”, “w”, encoding=”utf-8″) as f: f.write(“Python 文件写入示例n”) f.write(“第二行内容n”) # 追加写入 with open(“output.txt”, “a”, encoding=”utf-8″) as f: f.write(“这是追加的内容n”) 运行后你可以在当前目录找到 output.txt 文件,查看写入结果。
  • 有时我们需要操作不同目录下的文件: # 绝对路径 f = open(“/Users/admin/Desktop/data.txt”, “r”) # 相对路径 f = open(“subfolder/info.txt”, “r”) 如果不确定当前工作路径,可以打印: import os print(os.getcwd()) # 输出当前工作目录
  • 对于非文本文件(如图片、音频、视频等),需要使用 二进制模式(b)进行读写。
  • 文件可能不存在、权限不足、磁盘满等问题都可能导致程序崩溃。 使用 try…except 可以增强程序稳定性: try: with open(“data.txt”, “r”, encoding=”utf-8″) as f: print(f.read()) except FileNotFoundError: print(“❌ 文件不存在!”) except PermissionError: print(“⚠️ 没有权限访问文件!”) else: print(“✅ 文件读取成功。”) finally: print(“操作结束。”)
  • 下面我们结合所学知识,完成一个小任务 需求: 编写程序,读取一个文本文件,统计其中的行数和单词数。 def count_file_info(filename): try: with open(filename, “r”, encoding=”utf-8″) as f: lines = f.readlines() word_count = sum(len(line.split()) for line in lines) print(f”📘 文件行数: {len(lines)}”) print(f”📝 总单词数: {word_count}”) except FileNotFoundError: print(“❌ 文件未找到!”) count_file_info(“article.txt”) 输出示例: 📘 文件行数: 20📝 总单词数: 157
  • 技巧 建议 使用 with open() 自动关闭文件,推荐使用 指定 encoding='utf-8' 避免中文乱码 模式选择 'r' / 'w' / 'a' 根据需求灵活选择 处理二进制文件时加 'b' 如:'rb'、'wb' 使用异常捕获 提高程序健壮性
  • 掌握文件读写,是 Python 程序员的基本功。 从日志系统、配置文件到图片批处理,文件操作无处不在。 通过灵活使用 open()、with、read()、write(),你就能轻松完成各种数据输入输出任务! 到此这篇关于Python读写文件(文本/二进制)的方法详解与实战的文章就介绍到这了,更多相关Python读写文件内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客! 您可能感兴趣的文章: Python中读写压缩数据文件的方法完全指南 Python读写Excel大数据文件的3种有效方式对比 在python中读写xlsx文件的实现方式 Python文件读写操作详解 Python文件读写6大实用方法小结 Python实现高效地读写大型文件 Python存储与读写二进制文件的示例代码
  • 目录
    • 一、文件操作的基本流程
    • 二、打开文件:open() 函数详解
    • 三、读取文本文件内容
      • read()—— 一次性读取全部内容
      • readline()—— 每次读取一行
      • readlines()—— 一次读取所有行,返回列表
    • 四、写入文本文件
      • 五、文件路径与相对路径
        • 六、操作二进制文件(图片、音频等)
          • 读取二进制文件
          • 复制二进制文件
        • 七、文件异常处理
          • 八、实战案例:统计文本文件行数与字数
            • 九、总结与最佳实践
              • 结语

                文件操作是 Python 编程中最常见的基础技能之一。 无论是保存日志、读取配置、还是处理图片和视频文件,文件读写都是必不可少的能力。

                本文将带你深入理解 Python 中文件操作的核心方法: 打开与关闭文件 读取与写入文本文件 处理二进制文件(图片、音频等) 使用 with 上下文管理器让代码更优雅

                Python 的文件读写操作一般遵循以下 4 步:

                • 打开文件open()
                • 读/写文件read() / write()
                • 关闭文件close()
                • 可选:异常处理或使用上下文管理器

                一个典型示例:

                # 打开文件(只读模式)
                f = open("example.txt", "r", encoding="utf-8")
                
                # 读取内容
                content = f.read()
                print(content)
                
                # 关闭文件
                f.close()
                

                open() 是文件操作的入口函数:

                open(file, mode='r', encoding=None)
                
                参数 含义
                file 文件路径
                mode 打开模式(见下表)
                encoding 编码方式(常用 "utf-8")

                常见文件打开模式

                模式 含义 是否创建新文件
                'r' 只读(默认)
                'w' 只写(覆盖原内容)
                'a' 追加写入
                'rb' 以二进制读取
                'wb' 以二进制写入(覆盖)
                'ab' 以二进制追加写入
                'r+' 读写模式

                Python 提供了多种读取方法,根据需求灵活选择。

                with open("data.txt", "r", encoding="utf-8") as f:
                    content = f.read()
                    print(content)
                

                with open("data.txt", "r", encoding="utf-8") as f:
                    line = f.readline()
                    while line:
                        print(line.strip())  # 去掉换行符
                        line = f.readline()
                

                with open("data.txt", "r", encoding="utf-8") as f:
                    lines = f.readlines()
                    for line in lines:
                        print(line.strip())
                

                推荐使用 with 上下文:会自动关闭文件,防止资源泄漏。

                写文件也很简单:

                # 覆盖写入(原内容会被清空)
                with open("output.txt", "w", encoding="utf-8") as f:
                    f.write("Python 文件写入示例n")
                    f.write("第二行内容n")
                
                # 追加写入
                with open("output.txt", "a", encoding="utf-8") as f:
                    f.write("这是追加的内容n")
                

                运行后你可以在当前目录找到 output.txt 文件,查看写入结果。

                有时我们需要操作不同目录下的文件:

                # 绝对路径
                f = open("/Users/admin/Desktop/data.txt", "r")
                
                # 相对路径
                f = open("subfolder/info.txt", "r")
                

                如果不确定当前工作路径,可以打印:

                import os
                print(os.getcwd())  # 输出当前工作目录
                

                对于非文本文件(如图片、音频、视频等),需要使用 二进制模式b)进行读写。

                with open("image.jpg", "rb") as f:
                    data = f.read()
                    print("文件大小:", len(data), "字节")
                

                with open("image.jpg", "rb") as src:
                    with open("copy.jpg", "wb") as dst:
                        dst.write(src.read())
                print("图片复制完成!")
                

                这种方式也常用于备份视频、音频、压缩包等文件。

                文件可能不存在、权限不足、磁盘满等问题都可能导致程序崩溃。 使用 try...except 可以增强程序稳定性:

                try:
                    with open("data.txt", "r", encoding="utf-8") as f:
                        print(f.read())
                except FileNotFoundError:
                    print("❌ 文件不存在!")
                except PermissionError:
                    print("⚠️ 没有权限访问文件!")
                else:
                    print("✅ 文件读取成功。")
                finally:
                    print("操作结束。")
                

                下面我们结合所学知识,完成一个小任务

                需求:

                编写程序,读取一个文本文件,统计其中的行数单词数

                def count_file_info(filename):
                    try:
                        with open(filename, "r", encoding="utf-8") as f:
                            lines = f.readlines()
                            word_count = sum(len(line.split()) for line in lines)
                            print(f"📘 文件行数: {len(lines)}")
                            print(f"📝 总单词数: {word_count}")
                    except FileNotFoundError:
                        print("❌ 文件未找到!")
                
                count_file_info("article.txt")
                

                输出示例:

                📘 文件行数: 20
                📝 总单词数: 157

                技巧 建议
                使用 with open() 自动关闭文件,推荐使用
                指定 encoding='utf-8' 避免中文乱码
                模式选择 'r' / 'w' / 'a' 根据需求灵活选择
                处理二进制文件时加 'b' 如:'rb'、'wb'
                使用异常捕获 提高程序健壮性

                掌握文件读写,是 Python 程序员的基本功。 从日志系统、配置文件到图片批处理,文件操作无处不在。 通过灵活使用 open()withread()write(),你就能轻松完成各种数据输入输出任务!

                到此这篇关于Python读写文件(文本/二进制)的方法详解与实战的文章就介绍到这了,更多相关Python读写文件内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客!

                您可能感兴趣的文章:

                • Python中读写压缩数据文件的方法完全指南
                • Python读写Excel大数据文件的3种有效方式对比
                • 在python中读写xlsx文件的实现方式
                • Python文件读写操作详解
                • Python文件读写6大实用方法小结
                • Python实现高效地读写大型文件
                • Python存储与读写二进制文件的示例代码

                站内搜索