python基础第十八节

18.1 文件的概念.

  1. 文件的概念和分类
    • 文件是用于存储数据的一种持久化媒介.
    • 在计算机中, 文件分为文本文件和二进制文件两种类型.
    • 文本文件由字符组成, 可以使用文本编辑器打开并阅读.
    • 二进制文件由字节组成, 包含非文本数据, 如图像、音频和视频等.
      在日常生活, 工作中, 文件的操作主要包括: 创建文件, 打开, 关闭, 读, 写.

18.2 python中的文件读读取.

使用 open() 函数打开文件, 接受文件路径和打开模式, 编码等作为参数.

f = open(name, mode, encoding)
# name: 需要打开的目标文件(包含路径和文件名), 类型是字符串.
# mode: 设置打开文件的模式. 读, 写, 追加写. 类型是字符串.
# encoding: 编码. 一般使用utf-8.
# 使用 close() 方法关闭文件, 释放资源.
f.close()

常见的打开模式包括: 读取模式('r')、写入模式('w')、追加模式('a')和二进制模式('b')
上述代码中的f是open函数返回的文件对象.
以下是关于文件读取的常用模式.

模式 描述
'r' 默认模式, 以只读方式打开文件.文件的指针将会放在文件的开头.如果文件不存在, 将会引发FileNotFoundError异常.
'rb' 以二进制模式以只读方式打开文件.适用于读取二进制数据, 如图像、音频等.
'r+' 以读写方式打开文件.文件的指针将会放在文件的开头.如果文件不存在, 将会引发FileNotFoundError异常.
'rb+' 以二进制模式以读写方式打开文件.文件的指针将会放在文件的开头.如果文件不存在, 将会引发FileNotFoundError异常.
文本的读取
  1. 使用 read() 方法读取整个文本文件的内容.
  2. 使用 readline() 方法逐行读取文本文件的内容, 每次调用 readline() 方法, 它会返回文件中的下一行作为一个字符串.当到达文件末尾时, 它会返回一个空字符串. 可以在循环中使用 readline() 方法来逐行处理文件内容.
  3. readlines(): 这个方法用于一次性读取整个文件内容, 并将每一行作为一个字符串存储在一个列表中.它会返回一个包含所有行的列表, 每行作为一个元素. 你可以直接遍历这个列表或使用索引访问特定行.
    以上3个方法都可以接收一个参数,它们接受一个可选的参数用于指定要读取的字符数或字节数, 指定要读取的最大字符数或字节数.如果省略参数或指定为负数(默认值), 则会读取全部内容.返回值是一个包含读取行内容的字符串.

18.3 python中的文件写入.

write(): 使用 write() 方法向文本文件写入文本内容, 调用write将内容写入到缓冲区.
flush(): 调用flush()将缓冲区的内容写入到磁盘.
close(): 调用close()关闭文件的同时也会将缓冲区的内容写入到磁盘. 所以调用close()的话, 可以不需要使用到flush().
以下是关于文件写入的常用模式.

模式 描述
'w' 以写入方式打开文件.如果文件已存在, 则会被清空;如果文件不存在, 则会创建一个新文件.
'wb' 以二进制模式以写入方式打开文件.适用于写入二进制数据, 如图像、音频等.
'w+' 以读写方式打开文件.如果文件已存在, 则会被清空;如果文件不存在, 则会创建一个新文件.
'wb+' 以二进制模式以读写方式打开文件.如果文件已存在, 则会被清空;如果文件不存在, 则会创建一个新文件.
'a' 以追加方式打开文件.文件的指针将会放在文件的末尾.如果文件不存在, 则会创建一个新文件.
'ab' 以二进制模式以追加方式打开文件.适用于追加二进制数据.
'a+' 以读写方式打开文件.文件的指针将会放在文件的末尾.如果文件不存在, 则会创建一个新文件.
'ab+' 以二进制模式以读写方式打开文件.文件的指针将会放在文件的末尾.如果文件不存在, 则会创建一个新文件.

18.4 with语句实现文件读写.

with 语句可以自动管理文件的打开和关闭, 无需显式调用 close() 方法.
示例:

with open('test.txt', 'r') as f:
    content = f.read()
    print(content)

使用with语句可以更安全和高效地进行文件读写操作, 并确保在读写完成后正确地关闭文件.无需手动调用close()方法.