文件打开模式
| 打开模式 | 执行操作 |
|---|---|
| ‘r’ | 以只读的方式打开文件 (默认) |
| ‘w’ | 以写入的方式打开文件, 会覆盖已存在的文件 |
| ‘x’ | 如果文件已经存在, 使用此模式打开将引发异常 |
| ‘a’ | 以写入模式打开, 如果文件存在, 则在末尾追加写入 |
| ‘b’ | 以二进制模式打开文件 |
| ‘t’ | 以文本模式打开 (默认) |
| ‘+’ | 可读可写模式 (可添加到其他模式中使用) |
| ‘U’ | 通用换行符支持 |
以下是打开文件使用的模式的列表 -
| 模式 | 描述 |
|---|---|
| r | 打开的文件为只读模式。文件指针位于文件的开头,这是默认模式。 |
| rb | 打开仅用二进制格式读取的文件。文件指针位于文件的开头,这是默认模式。 |
| r+ | 打开读写文件。文件指针放在文件的开头。 |
| rb+ | 以二进制格式打开一个用于读写文件。文件指针放在文件的开头。 |
| w | 打开仅供写入的文件。 如果文件存在,则覆盖该文件。 如果文件不存在,则创建一个新文件进行写入。 |
| wb | 打开仅用二进制格式写入的文件。如果文件存在,则覆盖该文件。 如果文件不存在,则创建一个新文件进行写入。 |
| w+ | 打开写入和取读的文件。如果文件存在,则覆盖现有文件。 如果文件不存在,创建一个新文件进行阅读和写入。 |
| wb+ | 打开一个二进制格式的写入和读取文件。 如果文件存在,则覆盖现有文件。 如果文件不存在,创建一个新文件进行阅读和写入。 |
| a | 打开一个文件进行追加。 如果文件存在,则文件指针位于文件末尾。也就是说,文件处于追加模式。如果文件不存在,它将创建一个新文件进行写入。 |
| ab | 打开一个二进制格式的文件。如果文件存在,则文件指针位于文件末尾。 也就是说,文件处于追加模式。如果文件不存在,它将创建一个新文件进行写入。 |
| a+ | 打开一个文件,用于追加和阅读。 如果文件存在,则文件指针位于文件末尾。 文件以附加模式打开。 如果文件不存在,它将创建一个新文件进行阅读和写入。 |
| ab+ | 打开一个二进制格式的附加和读取文件。 如果文件存在,则文件指针位于文件末尾。文件以附加模式打开。如果文件不存在,它将创建一个新文件进行读取和写入。 |
文件对象方法
| 文件对象方法 | 执行操作 |
|---|---|
| f.close() | 关闭文件 |
| f.read(size = -1) | 从文件读取size这个字符,当未给定size或给定负值的时候, 读取剩余的所有字符, 然后作为字符串返回 |
| f.readline() | 以写入模式打开, 如果文件存在, 则在末尾追加写入 |
| f.write(str) | 将字符串str写入文件 |
| f.writelines(seq) | 向文件写入字符串序列seq, seq应该是一个返回字符串的可迭代对象 |
| f.seek(offset, from) | 在文件中移动文件指针, 从from ( 0代表文件的起始位置, 2代表文件末尾 ) 偏移offset个字节 |
| f.tell() | 返回当前在文件中的位置 |
文件对象属性
打开一个文件并且有一个文件对象后,可以获得与该文件相关的各种信息。
以下是与文件对象相关的所有属性的列表 -
| 属性 | 描述 |
|---|---|
| file.closed | 如果文件关闭则返回true,否则返回false。 |
| file.mode | 返回打开文件的访问模式。 |
| file.name | 返回文件的名称。 |
创建文本文件
f = open('E:\\001笔记大全\\008Python01\\test2.txt', 'w')
打开文件 open()

f = open('E:\\001笔记大全\\008Python01\\test.txt', 'r')
文件内容 .read()
size 默认参数 -1 表示读取文件内 所有的数据都会返回出来
如果 填 5 就会只读文件内 前面5个字符
f.read(5)# 打印你好世界,
当前指针位置 .tell()
就是说告诉我们当前文件指针所在的位置, 类似 你读到那个位置字符的位置
一个中文汉字 表示2 个字节 其它均表示 1 个字节
f = open('E:\\001笔记大全\\008Python01\\test.txt', 'r')print(f.read(5))print(f.tell())f.close()# 打印你好世界,9
修改指针所在位置 .seek()
有2个参数
- 指定指针位置 偏移
- 从那个位置开始计算 0 从其实位置 2 表示从末尾位置 ```python f = open(‘E:\001笔记大全\008Python01\test.txt’, ‘r’) print(f.read()) print(f.tell()) print(f.seek(40, 0))
打印
张三:你好世界, 有可能李四:在你家门口张三:没有看到啊, 你是不是走错门了?李四:是吗?我再看看!9540
<a name="iS7qj"></a>### 读取一行文本内容 .readline()前提是知道当前指针在那个位置<br />```python# 打开文件f = open('E:\\001笔记大全\\008Python01\\test.txt', 'r')# 读取文件内容,不填参数,默认返回全部print(f.read())# 定位指针所在位置, 如果是读取文件内容全部,就会返回最后的位置print(f.tell())# 修改指针位置 从45字节的位置 0 开始打印print(f.seek(40, 0))# 一行内容print(f.readline())f.close()# 打印张三:你好世界, 有可能李四:在你家门口张三:没有看到啊, 你是不是走错门了?李四:是吗?我再看看!9540张三:没有看到啊, 你是不是走错门了?
遍历文件内容
f = open('E:\\001笔记大全\\008Python01\\test.txt', 'r')f.read()f.seek(0,0)for temp in f:print(temp)
写入文件 .write()
# 模式 a 只追加内容# 模式 w 如果没有这个文件,则会创建新的文件名,如果存在则会覆盖内容f = open('E:\\001笔记大全\\008Python01\\test.txt', 'a')f.write('我是写入的字符内容\n')f.close()
上下文 with
with open('E:\\001笔记大全\\008Python01\\test2.txt', 'w') as f:f.write("Hello")# 写入数据 Hello
使用with 加 as 就会把返回的东西赋值给了 f ,然后f 就可以调用 文件的方法了,并默认书写 关闭文件的方法
