python--文件

72 阅读3分钟

文件的基础操作

文件的打开、关闭与读写是文件的基础操作,任何复杂的文件操作都离不开这些操作。

1. 打开文件

Python 通过内置函数open()打开文件并返回文件对象,语法格式:open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closedfd=True, opener=None)

  • 参数说明:

    • file:指定文件名或文件路径;
    • encoding:指定文件编码方式,默认值为None(使用系统默认编码,常见编码如 utf-8 等);
    • mode:设置文件打开模式,基础模式包含r、w、a,可组合使用,常用模式见下表。

常用的文件打开模式

打开模式名称描述
r 或 rb读取或二进制读取模式以只读方式打开文本 / 二进制文件;文件不存在则无法打开;r 是默认模式
w 或 wb写入或二进制写入模式以只写方式打开文本 / 二进制文件;文件存在则清空内容,不存在则新建
a 或 ab追加或二进制追加模式以只写方式打开文本 / 二进制文件,在文件末尾追加数据(不清空原有内容);文件不存在则新建
r + 或 rb+读写或二进制读写模式以读写方式打开文本 / 二进制文件;文件不存在则无法打开
w + 或 wb+读写或二进制读写模式以读写方式打开文本 / 二进制文件;文件存在则清空内容,不存在则新建
a + 或 ab+追加或二进制追加读写模式以读写方式打开文本 / 二进制文件,写入数据追加到末尾(不清空原有内容);文件不存在则新建

打开文件示例代码

file1 = open('E:\a.txt')    # 以只读的方式打开E盘的文本文件a.txt
file2 = open('b.txt', 'w')  # 以只写的方式打开当前目录的文本文件b.txt
file3 = open('c.txt', 'w+') # 以读写的方式打开文本文件c.txt
file4 = open('d.txt', 'wb+')# 以二进制读写的方式打开文本文件d.txt

2. 关闭文件

Python 中关闭文件有 2 种方式:

(1)close()方法

close()是文件对象的内置方法,无需传入参数,直接调用即可关闭已打开的文件。示例代码:

file.close()  # 关闭已打开的文件对象file

(2)with语句

当文件操作步骤较多时,易遗漏关闭操作,Python 通过with语句实现文件自动关闭(预定义清理操作):

  • 语法格式:

    with open(文件路径, 打开模式) as 变量名:
        代码段
    
  • 执行逻辑:先调用open()打开文件,将文件对象赋值给变量;执行代码段后,自动调用close()关闭文件。

  • 示例代码:

    with open('a.txt', 'w+') as file:
        print('我是with语句')
    

    注:此方式无需手动调用close(),文件使用后会自动关闭。

思考:为什么要及时关闭文件?

系统可打开的文件数量有限(每打开一个,可用数量减 1);打开的文件会占用系统资源,过多会降低性能;若文件以缓冲方式打开,磁盘与内存的读写不即时,程序异常关闭可能导致数据丢失。因此需主动关闭不再使用的文件。