Python 测开27期 - WL - 学习笔记 - python 内置库 文件处理

python 内置库 文件处理

io操作

文件操作步骤

  • 打开文件
  • 操作文件:读/写内容
  • 关闭文件(读写完成,要及时的关闭)

open 方法

  • file:文件的绝对路径或者相对路径
  • mode:文件读写方式
  • encoding:编码方式,有中文就要用utf-8
  • buffering:缓冲区大小,默认是 -1,设置是1,则是遇到换行符就写入磁盘
  • errors:当遇到编码或者解码错误的时候是否抛出
  • closefd:文件描述符
  • newline:设置换行符的标记。/r还是/n

文件读写模式

文件打开模式 描述
r 以只读模式打开文件,并将文件指针指向文件头,如果文件不存在会报错
w 以只写模式打开文件,并将文件指针指向文件头,如果文件存在则会将其内容清空,如果文件不存在,则会创建新文件
a 以只追加可写模式打开文件,并将文件指针执行文件尾部,如果文件不存在则创建新文件
r+ 在 r 的基础上增加可写功能
w+ 在 w 的基础上增加可读功能
a+ 在 a 的基础上增加可读功能
b 读写二进制文件(默认是t,表示文本),需要写上面几种模式搭配使用, 如ab,wb,ab+,(POSI系统,包括 linux 都会忽略该字符)

实战1

f = open('D:\\pythonProject2\\no2class\\dahuaxiyou2\\numbwe.txt', 'r', encoding='utf-8')
print(f.read())
f.close()

读操作

方法 描述
read() 一次读取文件所有内容,返回一个str
read(size) 每次最多读取指定长度的内容,返回一个str,在python2中,size指定的是字节长度,在python3中,size指定的是字符长度,换行符算一个字符
readlines() 一次读取文件所有内容,按行返回一个list
readline() 每次只读取一行内容
  • 设置光标位置: 文件.seek(number)

不关闭文件的危害

  • 打开文件达到一定数量,将会导致打开失败
  • 占用内存空间,非常浪费资源
  • 会导致系统自动回收资源,从而丢失数据

推荐使用文件打开方式,会自动关闭

with open('D:\\pythonProject2\\no2class\\dahuaxiyou2\\numbwe.txt', 'r', encoding='utf-8') as f:
    f.read()
print(f.closed) # 文件是否已关闭,结果是 True

读操作实战

  • 读取指定长度内容
f.read(10) # 指定读取长度为10的前10内容
  • 读取文件中的一行
f.readline() # 每次只读一行,从第一行开始 
  • 遍历打印文件中的每一行
f = open('D:\\pythonProject2\\no2class\\dahuaxiyou2\\numbwe.txt', 'r', encoding='utf-8')
k = f.readlines()
f.seek(0)
for i in range(0, len(k)):
    print(k[i])

写操作实战

  • mode=‘w+’,读写权限,会新建文件,清空内容再写入
  • mode=‘r+’,读写权限,逐个替换原来的内容
  • mode=‘a+’,读写权限,追加内容

总结

  • 使用 with 方法,会自动完成关闭操作
  • 通过 python 封装的 API ,可以实现读、写、追加写入操作
  • 文件打开要使用 utf-8 的编码格式,以免中文出现乱码