1. 打开文件
#使用 open
f = open('路径',mode = '打开模式', encoding='编码')

#可以使用with语句打开,不需要关闭,可以同时打开多个文件
with open('路径',mode = '打开模式', encoding='编码') as f:
    pass

open获取的是文件句柄,使用的编码是系统的编码。

  1. 关闭文件
f.close()
  1. 打开模式
模式       操作
-------------------
r           只读
w          只写
rb          以二进制读
wb         以二进制写
a           追加
ab          以二进制追加
r+         读写
w+        写读
w+b       以二进制写读
r+b        以二进制读写
a+         追加读
  1. 读取文件
#read()
content = f.read()        #一次性全部读出来

#readline()
content = f.readline()        #一行一行的读

#readlines()
content = f.readlines()        #全部读出来,每行存储成一个列表的元素

#for循环 **建议使用**
for content in f:
    pass
  1. 写入文件
f.write('内容')
  1. 删除文件
import os
os.remove('文件路径')
  1. 重命名文件
import os
os.rename('修改前的文件名','修改后的文件名')
  1. 文件指针
#获取指针位置
f.tell()

#设置指针位置
f.seek(指针)    #指针是int类型,从0开始
  1. with语句的原理——上下文管理器
1.上下文管理协议:包含方法__enter__()和__exit__(),支持该协议的对象要实现这两种方法

2.上下文管理器:支持上下文管理协议的对象,这种对象实现了__enter__()和__exit__()方法。上下文管理器定义执行with语句时要建立的运行时上下文,负责执行with语句块上下文中的进入与退出操作。

3.运行时上下文:由上下文管理器创建,通过上下文管理器的__enter__()和__exit__()方法实现,__enter__()方法在语句体执行前进入运行时上下文,__exit__()在语句体执行完从运行时上下文推出。

4.上下文表达式:with语句中跟在关键字with之后的表达式,返回一个上下文管理器对象

5.with context_expression as target(s):
    with-body
target(S)是__enter__()方法的返回值