Python文本与二进制文件读写操作指南

 更新时间:2025年12月25日 09:24:47   作者:Sitin涛哥  
文件读写是编程中的常见操作,Python提供了简洁且强大的文件操作接口,本文将详细介绍Python中文本文件和二进制文件的读写操作,包括文件打开、读取、写入、关闭及异常处理等内容,需要的朋友可以参考下

引言

文件读写是编程中的常见操作,Python提供了简洁且强大的文件操作接口。本文将详细介绍Python中文本文件和二进制文件的读写操作,包括文件打开、读取、写入、关闭及异常处理等内容,并通过具体示例代码展示如何高效地处理文件。

文件的基本操作

打开文件

在Python中,使用open函数打开文件。open函数的基本语法如下:

open(filename, mode, encoding=None)
  • filename:要打开的文件名。
  • mode:文件打开模式,如'r'(读取)、'w'(写入)、'a'(追加)等。
  • encoding:文本文件的编码方式,通常使用'utf-8'

文件模式

常见的文件打开模式包括:

  • 'r':只读模式(默认)。
  • 'w':写入模式,会覆盖文件内容。
  • 'a':追加模式,在文件末尾添加内容。
  • 'b':二进制模式。
  • '+':读写模式。

文本文件处理

读取文本文件

逐行读取

使用readline方法逐行读取文件内容:

with open('example.txt', 'r', encoding='utf-8') as file:
    line = file.readline()
    while line:
        print(line.strip())
        line = file.readline()

读取整个文件

使用read方法一次性读取整个文件内容:

with open('example.txt', 'r', encoding='utf-8') as file:
    content = file.read()
    print(content)

读取文件的所有行

使用readlines方法读取文件的所有行,并返回一个列表:

with open('example.txt', 'r', encoding='utf-8') as file:
    lines = file.readlines()
    for line in lines:
        print(line.strip())

写入文本文件

使用write方法写入文本文件:

with open('output.txt', 'w', encoding='utf-8') as file:
    file.write('这是第一行文本。\n')
    file.write('这是第二行文本。')

追加文本文件

使用append模式在文件末尾追加内容:

with open('output.txt', 'a', encoding='utf-8') as file:
    file.write('\n这是追加的一行文本。')

二进制文件处理

读取二进制文件

使用rb模式读取二进制文件:

with open('example.bin', 'rb') as file:
    content = file.read()
    print(content)

写入二进制文件

使用wb模式写入二进制文件:

with open('output.bin', 'wb') as file:
    file.write(b'This is a binary file.')

异常处理

在文件操作过程中,可能会遇到一些异常情况,如文件不存在、没有权限等。可以使用try-except语句进行异常处理:

try:
    with open('nonexistent.txt', 'r', encoding='utf-8') as file:
        content = file.read()
except FileNotFoundError:
    print('文件未找到。')
except PermissionError:
    print('没有权限读取文件。')

实际应用示例

复制文本文件

def copy_text_file(source, destination):
    try:
        with open(source, 'r', encoding='utf-8') as src_file:
            content = src_file.read()
        with open(destination, 'w', encoding='utf-8') as dest_file:
            dest_file.write(content)
        print(f'文件已成功复制到 {destination}')
    except Exception as e:
        print(f'复制文件时出错: {e}')

copy_text_file('example.txt', 'example_copy.txt')

复制二进制文件

def copy_binary_file(source, destination):
    try:
        with open(source, 'rb') as src_file:
            content = src_file.read()
        with open(destination, 'wb') as dest_file:
            dest_file.write(content)
        print(f'文件已成功复制到 {destination}')
    except Exception as e:
        print(f'复制文件时出错: {e}')

copy_binary_file('example.bin', 'example_copy.bin')

统计文本文件的行数、单词数和字符数

def file_statistics(filename):
    try:
        with open(filename, 'r', encoding='utf-8') as file:
            lines = file.readlines()
        line_count = len(lines)
        word_count = sum(len(line.split()) for line in lines)
        char_count = sum(len(line) for line in lines)
        print(f'行数: {line_count}, 单词数: {word_count}, 字符数: {char_count}')
    except Exception as e:
        print(f'统计文件时出错: {e}')

file_statistics('example.txt')

使用JSON文件

JSON是一种常用的轻量级数据交换格式。在Python中,可以使用json模块读写JSON文件。

读取JSON文件

import json

def read_json(filename):
    try:
        with open(filename, 'r', encoding='utf-8') as file:
            data = json.load(file)
        return data
    except Exception as e:
        print(f'读取JSON文件时出错: {e}')
        return None

data = read_json('data.json')
print(data)

写入JSON文件

import json

def write_json(data, filename):
    try:
        with open(filename, 'w', encoding='utf-8') as file:
            json.dump(data, file, ensure_ascii=False, indent=4)
        print(f'数据已写入到 {filename}')
    except Exception as e:
        print(f'写入JSON文件时出错: {e}')

data = {'name': 'Alice', 'age': 25, 'city': 'New York'}
write_json(data, 'data.json')

总结

本文详细介绍了Python中文本文件和二进制文件的读写操作,包括文件的打开、读取、写入、追加和关闭等基本操作,同时讲解了如何进行异常处理。通过具体的示例代码,展示了如何高效地处理文件,例如逐行读取文件、写入文件、复制文件、统计文件信息以及处理JSON文件等实际应用场景。掌握这些文件操作技巧,能够帮助大家在Python编程中更加灵活地处理各种文件,提高代码的可读性和可维护性。

以上就是Python文本与二进制文件读写操作指南的详细内容,更多关于Python文本与二进制文件读写的资料请关注脚本之家其它相关文章!

相关文章

  • 一篇文章带你了解python字典基础

    一篇文章带你了解python字典基础

    这篇文章主要介绍了Python字典及字典基本操作方法,结合实例形式详细分析了Python字典的概念、创建、格式化及常用操作方法与相关注意事项,需要的朋友可以参考下
    2021-08-08
  • conda虚拟环境默认路径的修改方法

    conda虚拟环境默认路径的修改方法

    最近发现我linux系统中的/dev/root目录利用率占用了100%,这对后面文件的操作带来了一些麻烦,下面这篇文章主要给大家介绍了关于conda虚拟环境默认路径的修改方法,需要的朋友可以参考下
    2022-07-07
  • 实现python版本的按任意键继续/退出

    实现python版本的按任意键继续/退出

    本文给大家简单介绍了在windows以及linux下实现python版本的按任意键继续/退出功能,非常的简单实用,linux下稍微复杂些,有需要的小伙伴可以参考下
    2016-09-09
  • 通过Python的speech_recognition库将音频文件转为文字

    通过Python的speech_recognition库将音频文件转为文字

    recognize_google() 是Google提供的一种语音识别API,可以识别音频文件或麦克风录制的语音,并将其转换为文本,这篇文章主要介绍了通过Python的speech_recognition库将音频文件转为文字,需要的朋友可以参考下
    2023-05-05
  • Pandas数据如何读取与导出

    Pandas数据如何读取与导出

    Pandas是一个强大的Python库,用于数据处理和分析,它提供了多种文件格式的数据读取和导出方法,包括CSV、Excel、SQL数据库、JSON等,常用的数据读取方法为`pd.read_csv()`、`pd.read_excel()`等,导出方法为`to_csv()`、`to_excel()`等
    2025-01-01
  • Python+PuLP实现线性规划的求解

    Python+PuLP实现线性规划的求解

    线性规划(Linear programming),在线性等式或不等式约束条件下求解线性目标函数的极值问题,常用于解决资源分配、生产调度和混合问题。本文将利用PuLP实现线性规划的求解,需要的可以参考一下
    2022-04-04
  • Python SQLAlchemy入门教程(基本用法)

    Python SQLAlchemy入门教程(基本用法)

    这篇文章主要介绍了Python SQLAlchemy入门教程,本文通过实例主要给大家讲解了python SQLAlchemy基本用法,需要的朋友可以参考下
    2019-11-11
  • 人工智能学习Pytorch数据集分割及动量示例详解

    人工智能学习Pytorch数据集分割及动量示例详解

    这篇文章主要为大家介绍了人工智能学习Pytorch数据集分割及动量示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2021-11-11
  • Python爬虫模拟登陆哔哩哔哩(bilibili)并突破点选验证码功能

    Python爬虫模拟登陆哔哩哔哩(bilibili)并突破点选验证码功能

    这篇文章主要介绍了Python爬虫模拟登陆哔哩哔哩(bilibili)并突破点选验证码功能,本文通过图文实例相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • Pandas.DataFrame重置列的行名实现(set_index)

    Pandas.DataFrame重置列的行名实现(set_index)

    本文主要介绍了Pandas.DataFrame重置列的行名实现(set_index),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02

最新评论