一.Python中文件的读写
文件操作模式
r:以只读的形式打开文件,默认就是r模式
w:以只写的形式打开这个文件,如果这个文件存在就覆盖这个文件内容来写(先删除原内容在写),不存在就创建文件
a:在文件后面追加内容,文件不存在创建文件
rb:以只读的形式打开一个二进制文件
wb:以只写的形式打开一个二进制文件,如果这个文件存在就覆盖这个文件来写东西(先删除原内容在写),否则创建文件
ab:在一个二进制文件后面追加内容 ,文件不存在创建文件
r+:以读写的形式打开一个文件,如果这个文件不存在会报错
w+:以读写的形式打开一个文件,如果这个文件存在就覆盖这个文件内容来写(先删除原内容),不存在就创建文件
a+:以读写的形式打开文件可以在文件后面追加内容,文件不存在就创建
rb+:以读写的形式打开一个二进制文件,不存在就报错
wb+:以读写的形式打开一个二进制文件,如果这个文件存在就覆盖这个文件内容来写(先删除原内容在写),不存在就创建文件
ab+:以读写的形式打开二进制文件可以在文件后面追加内容
文件的打开:
在python,使用open函数,可以打开一个已经存在的文件,或者创建一个新文件open(文件名,访 问模式)。
格式:f = open(‘文件’, 'w')w为文件操作模式,视情况而定,注意不同模式之间的区别。
文件对象的常用方法:
二.With...as...打开文件
with … as 变量名 ,是控制流语句,经常用来操作文件
with是一种上下文管理协议
as 变量,相当于起别名,方便操作
with as打开文件时常用方式
缺点:自动关闭文件句柄,是有一段时间的,这个时间不固定,所以这里就有可能产生问题,如果你在with语句中通过r模式打开a.txt文件,那么你在下面又以a模式打开a.txt文件,此时有可能你第二次打开a.txt文件时,第一次的文件句柄还没有关闭掉,可能就会出现错误,他的解决方式只能在你第二次打开此文件前,手动关闭上一个文件句柄
示例:
一个文件:
with open('a.txt',encoding='gbk') as f1:
#as,将前面的内容用f1变量来进行指代,方便操作,变量符合命名规则的任意变量都可以
print(f1.read())
多个文件:
with open('a.txt',encoding='gbk') as f1, open('b.txt',encoding='utf-8') as f2:
print(f1.read())
print(f2.read())
三.文件的修改
修改流程:
- 已读的模式打开源文件
- 以写的模式创建一个新文件
- 将源文件的内容读出来修改新内容。写入新文件
- 将源文件删除
- 将新文件重命名为源文件
import os
with open('b.txt',encoding='utf-8',) as f1,open('b.txt.bak',encoding='utf-8',mode='w') as f2:
旧文件=f1.read()
新文件=旧文件.replace('x','y')#修改的内容
f2.write(新文件)
os.remove('b.txt')#删除原文件
os.rename('b.txt.bak','b.txt')#将修改的新文件重新命名成原文件