程序员的公众号:源1024,获取更多资料,无加密无套路!
最近整理了一份大厂面试资料《史上最全大厂面试题》,Springboot、微服务、算法、数据结构、Zookeeper、Mybatis、Dubbo、linux、Kafka、Elasticsearch、数据库等等
获取方式: 关注公众号并回复 666 领取,更多内容持续奉上
目录
Python open() 方法用于打开一个文件,并返回文件对象。
语法格式:
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
file | 文件路径(相对或绝对路径) |
mode | 可选,文件打开模式 |
buffering | 设置缓冲 |
encoding | 解码或编码文件的编码,一般使用utf8 |
errors | 报错级别 |
newline | 区分换行符 |
closefd | 传入的file参数类型 |
opener | 设置自定义开启器 |
t | 文本模式 (默认) |
---|---|
x | 写模式,新建一个文件,如果该文件已存在则会报错 |
b | 二进制模式 |
+ | 打开一个文件进行更新(可读可写) |
r | 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 |
r+ | 打开一个文件用于读写。文件指针将会放在文件的开头。 |
w | 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
w+ | 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
a | 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
a+ | 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 |
open('file.txt', mode='w',encoding='utf-8')
close() | 关闭文件。关闭后文件不能再进行读写操作。 |
flush() | 刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件 |
read(size) | 读取指定的字节数,参数可选,无参或参数为负时读取所有 |
readline() | 读取一行 |
readlines() | 读取所有行并返回列表 |
write() | 将字符串写入文件,返回写入字符长度 |
writelines() | 向文件写入一个字符串列表 |
tell() | 返回文件当前位置 |
truncate() | 从文件的首行首字符开始截断,截断文件为 size 个字符,无 size 表示从当前位置截断;截断之后后面的所有字符被删除 |
seek() | 将文件对象移动到指定的位置 |
- #写入
- wf = open('file.txt', 'w', encoding='utf-8')
- wf.write('你好\n')
- wf.writelines(['Hello\n', 'Python'])
- # 关闭
- wf.close()
用with as 语句来代替close(),程序执行完成后会自动关闭已经打开的文件
-
- with open('file.txt','w',encoding='utf-8') as wf:
- wf.write('你好\n')
- wf.writelines(['Hello\n', 'Python'])
- with open('file.txt', 'r', encoding='utf-8') as rf:
- print(rf.readline())
- print(rf.read(3))
- print(rf.readlines())
- with open('file.txt', 'rb+') as f:
- f.write(b'hello')
- # 文件对象位置
- print(f.tell())
- # 移动到文件的第四个字节
- f.seek(3)
- print(f.tell())
-
- #输出
- 5
- 3