python基础第十八节
18.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异常. |
| 文本的读取 |
- 使用
read()方法读取整个文本文件的内容. - 使用
readline()方法逐行读取文本文件的内容, 每次调用readline()方法, 它会返回文件中的下一行作为一个字符串.当到达文件末尾时, 它会返回一个空字符串. 可以在循环中使用readline()方法来逐行处理文件内容. 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()方法.