• Python文件操作详细介绍(打开、读取、写入、上下文管理器、关闭、异常处理;文件模式、编码、路径、读写位置、复制、移动、删除)


    目录

    一、基础操作

    1. 打开文件

    2. 读取文件

    3. 写入文件

    4. 上下文管理器

    5. 关闭文件

    6. 异常处理

    二、进阶操作

    6. 文件模式

     7. 文件的编码处理

    8. 文件路径操作

    9. 文件的读写位置

    10. 迭代文件内容

    11. 文件的复制、移动、删除


    一、基础操作

    1. 打开文件

            使用内置函数open()可以打开一个文件,并返回一个文件对象。你需要提供文件的路径以及打开模式(读取、写入、追加等)。

    file = open('file.txt', 'r')  # 以只读模式打开名为file.txt的文件

    2. 读取文件

            文件对象提供了多个用于读取文件内容的方法,常用的有:

    1. content = file.read() # 读取整个文件内容
    2. line = file.readline() # 读取文件的一行内容
    3. lines = file.readlines() # 读取文件的所有行内容并返回列表
    • read(): 读取整个文件的内容为一个字符串。
    • readline(): 逐行读取文件内容,每次读取一行。
    • readlines(): 将文件内容按行读取,并返回一个包含每行内容的列表。

    3. 写入文件

            使用文件对象的write()方法可以将数据写入文件。你可以将字符串或者字节流作为参数传递给write()方法。

    1. file = open('file.txt', 'w') # 以写入模式打开文件
    2. file.write('Hello, World!') # 写入字符串到文件

    4. 上下文管理器

            在处理文件操作时,为了确保文件在使用后被正确关闭,你可以使用上下文管理器来自动管理文件的打开和关闭。使用with语句可以创建一个上下文管理器,并在代码块执行完毕后自动关闭文件,无需手动调用close()方法。

    1. with open('file.txt', 'r') as file:
    2. # 执行文件操作,文件会在代码块执行完毕后自动关闭

    5. 关闭文件

            完成对文件的操作后,应该关闭文件以释放系统资源。使用文件对象的close()方法可以关闭文件。

    file.close()  # 关闭文件

    6. 异常处理

            在文件操作过程中,可能会出现一些异常情况,比如文件不存在、权限错误等。你可以使用异常处理语句来捕获并处理这些异常情况。

    1. try:
    2. file = open('file.txt', 'r')
    3. # 执行文件操作
    4. except FileNotFoundError:
    5. print("文件不存在")
    6. except PermissionError:
    7. print("没有文件访问权限")
    8. finally:
    9. file.close() # 确保文件被关闭

    二、进阶操作

    6. 文件模式

            在打开文件时,你需要指定文件的模式,可以将模式与打开的文件路径一起传递给open()函数,如open('file.txt', 'r')。常见的文件模式包括:

    • 'r':只读模式(默认)。打开文件后,只能读取文件内容,不能进行写入操作。
    • 'w':写入模式。如果文件存在,会先清空文件内容,然后写入新的内容;如果文件不存在,会创建一个新的文件。
    • 'a':追加模式。在文件末尾追加新的内容,不会清空原有内容;如果文件不存在,会创建一个新的文件。
    • 'x':独占创建模式。创建新文件,如果文件已存在,则打开失败。
    • 'b':二进制模式。以二进制格式读取或写入文件,如读取图片或视频文件。
    • 't':文本模式(默认)。以文本格式读取或写入文件,如读取或写入字符串。

     7. 文件的编码处理

            在处理文本文件时,需要考虑文件的编码格式。Python提供了多种编码处理方式,常见的有:

    • ascii:ASCII编码,适用于英文文本。
    • utf-8:UTF-8编码,适用于多种语言的文本。
    • latin-1:Latin-1编码,适用于西欧语言的文本。

    在打开文件时,你可以指定文件的编码格式。

    1. with open('file.txt', 'r', encoding='utf-8') as file:
    2. # 处理文件内容

    8. 文件路径操作

            在文件操作中,你经常需要处理文件路径和文件名。Python提供了os模块和os.path模块来进行文件路径操作。你可以使用这些模块来获取文件的绝对路径、检查文件是否存在、创建目录等。

    1. import os
    2. file_path = 'path/to/file.txt'
    3. abs_path = os.path.abspath(file_path) # 获取文件的绝对路径
    4. file_exists = os.path.exists(file_path) # 检查文件是否存在
    5. dir_name = os.path.dirname(file_path) # 获取文件所在目录的路径
    6. os.makedirs('path/to/new_dir') # 创建目录

    9. 文件的读写位置

            文件对象维护了一个读写位置指针,指示下一次读取或写入操作的位置。在读取文件内容时,指针会随着读取的字节数向后移动;在写入文件内容时,指针会在写入后移动到新的位置。你可以使用文件对象的seek()方法来改变指针的位置,以便读取或写入特定位置的数据。例如:

    1. with open('file.txt', 'r') as file:
    2. file.seek(10) # 将指针移动到文件的第10个字节处
    3. data = file.read() # 从第10个字节开始读取文件内容

    10. 迭代文件内容

            文件对象可以像迭代器一样被迭代,逐行读取文件内容。这在处理大型文件时非常有用,因为不需要一次性将整个文件读入内存。

    1. with open('file.txt', 'r') as file:
    2. for line in file:
    3. # 处理每一行内容

    11. 文件的复制、移动、删除

            在文件操作中,你可能需要将文件复制到另一个位置或移动文件到不同的目录。Python提供了shutil模块来处理文件的复制、移动和删除等操作。

    1. import shutil
    2. # 复制文件
    3. shutil.copy('source.txt', 'destination.txt')
    4. # 移动文件
    5. shutil.move('file.txt', 'new_dir/file.txt')
    6. # 删除文件
    7. os.remove('file.txt')

  • 相关阅读:
    Spring Boot企业级开发教程课后习题——第2章Spring Boot核心配置与注解
    深入剖析Tomcat之ERR_INVALID_HTTP_RESPONSE
    【Java笔试强训】Day5(45842-统计回文、58539-连续最大和)
    kafka数据存储目录间迁移
    mall-1-搭建环境
    小程序云开发学习笔记
    Android内存优化的知识梳理
    C++:头文件书写规范【只能存在变量、函数的声明, 而不能放定义】【例外:可以写const对象的定义;】
    设计模式之命令模式
    Java循环结构—多重循环及continue break(基础)
  • 原文地址:https://blog.csdn.net/m0_63834988/article/details/133253195