1.文件的三种外模式(什么样子的文件)
- t 模式:只适用于文本文件
- b 模式:适用于任何文件,如:视频、图片、文本;在b模式下不需要写编码模式
- + 模式:能写也能读
2.文件的三种内模式(进行对文件的操作)
- r 模式:用来阅读文件
- w 模式:用来写文件,调用的时候没有文件会创建一个文件
- + 模式:用来读文件,也可以用来写文件
小结:外模式与内模式两种搭配使用,举例:
# 案例1:t模式的使用
with open(r't.txt',mode='rt',encoding='utf-8') as f:
res = f.read()
print(res)
with open(r't.txt',mode='wt',encoding='utf-8') as f:
res = f.read()
print(res)
with open(r't.txt',mode='r+t',encoding='utf-8') as f: # 在+模式下,能写也能读
res = f.read()
print(res)
# 案例2:将一个文件复制给另一个文件:
y_file = input('源文件路径是:')
f_file = input('复制文件路径:')
with open(r'{}'.format(y_file), mode='rt', encoding='utf-8') as f1, \
open(r'{}'.format(f_file), mode='wt', encoding='utf-8') as f2:
for line in f1:
f2.write(line)
# 案例3:b模式的使用
with open(r't.txt',mode='rb') as f:
res = f.read()
print(res)
with open(r't.txt',mode='wb') as f:
res = f.read()
print(res)
详细说明:with语句用来访问文件,with( r '文件的路径',mode='内外模式的运用',encoding = '编码模式的格式')
3.文件的两种修改方法
# 方式一:打开文件a,进行读取,然后再重新打开文件a,进行replace修改(注意这时候不能打开两个open,因为是同一个文件,没有关闭,wt会清空文件,进而修改不了文件)
with open('a.txt', mode='rt', encoding='utf-8') as f1:
res = f1.read()
with open('a.txt', mode='wt', encoding='utf-8') as f2:
f2.write(res.replace('zt','zx')) # 将文件a内容中的zt改为zx
# 方式2:这里的文件修改,其实是建了两个文件;将文件a的内容全部复制到文件b,然后将文件b中的内容进行replace修改,将文件b的名字改成文件a,这时候就通过文件b将文件a修改了
import os
with open('a.txt', mode='rt', encoding='utf-8') as f1, \
open('b.txt', mode='wt', encoding='utf-8') as f2:
for line in f1:
f2.write(line.replace('zt', 'lj'))
os.remove('a.txt')
os.rename('b.txt', 'a.txt')