1.文件类型:原生二进制文件,缓冲二进制文件及文本文件。
2.获取文件对象:open(文件名,文件操作模式)
open(文件名) 这种默认模式是r
- 文本文件操作模式:
只读模式:r
只写模式:w
读写模式:r+
在此模式下写文件,会从文件指针位置处开始写,
直接写文件,会从文件开始处覆盖原来位置的内容,
可以设置文件指针位置为文件结尾处f.seek(0,2),然后再写文件。
写读模式:w+
先写文件内容,然后设置文件指针位置为开始处f.seek(0),
否则文件指针位置为文件内容的最后,读不到任何内容。
追加模式:a
追加及读模式:a+
读文件前,需要将文件指针位置设置为文件开始处f.seek(0),
否则文件指针指向文件最后,读不到任何内容。
- 二进制文件操作模式:
只读模式:rb
只写模式:wb
读写模式:rb+
写读模式:wb+
追加模式:ab
追加及读模式:ab+
3.设置文件指针的位置:f.seek(偏移量, 偏移参照点)
偏移参照点:0--文件的开始位置;1--当前文件指针所在位置;2--文件的最后位置
4.获取文件指针的位置:f.tell()
5.读文件的四种方式:
with open('flasktest/test.py','r') as f:
# 1.read(长度),不指定长度,则读取全部,对于大文件,不要一次读全部
# s = f.read()
# 2.循环文件对象
for line in f:
print(line, end='')
# 3.readline()一行行的读取,直到读到空字符串结束
# line = f.readline()
# while line: # 读到一行返回空字符串,则说明文件已经读完了
# print(line)
# line = f.readline()
# 4.将文件读到列表中,共两种方式
# 1)readlines()
# ss = f.readlines()
# 2)list(f)
# list_line = list(f)
6. 追加文件内容
# 追加文件内容
with open('flasktest/test.py', 'a') as f:
print(f.tell()) # 当前文件指针位置
f.write('999')
7.压缩和解压文件模块
zlib
, gzip
, bz2
, lzma
, zipfile
and tarfile。
https://docs.python.org/3.7/library/zlib.html#module-zlib
https://docs.python.org/3.7/library/zipfile.html#module-zipfile
https://docs.python.org/3.7/library/tarfile.html#module-tarfile