一,文件操作
建立文件:老师.txt
文件路径:b:老师.txt
编码方式:utf-8 gbk
操作方式:只读、只写、读写、写读····
注:以什么编码方式储存的文件,就以什么编码打开进行操作。·
文件打开后,都要在结尾加上f.close(),表示关闭文件,以免占用内存
1.只读:r rb
美丽.txt 1:r 相对路径: f=open(‘美丽.txt’,mode='r',encoding='utf-8')------>打开文件 d=f.read()-----》把文件内容读出来赋值给d prind()------>打印文件内容 绝对路径:首先在根目录下创建:d:美丽.txt f=open(‘d:美丽.txt’,mode='r',encoding='utf-8')------>打开文件 注:报错两个原因,一个是创建文件 拓展名隐藏了,导致调取的文件不是一个文件;另一个原因是编码方式有误,文件用什么编辑的就要用什么方式打开 2:rb f=open(‘美丽.txt’,mode='rb’) 注:不用再写上编码方式了,rb,已经表明是bytes 类型了 prind(f.read())
2.读写:r+ r+b
1.r+读写 f=('美丽.txt',mode='r+',encoding='utf-8') print(f.read()) f.close() 2.r+b 读写(以bytes类型) f=('美丽.txt',mode='r+b') #默认bytes 类型,不在写编码方式了 print(f.read()) f.close()
3.只写:w w+b w+
1.w 先将源文件的内容全部清除,在写。 f = open('log',mode='w',encoding='utf-8') f.write('附近看到') f.close() 2.wb 已bytes类型写 f = open('log',mode='w') f.write('附近看到'.encode('utf-8')) # f.close() 3. w+ 写读 f = open('log',mode='w+',encoding='utf-8') f.write('aaa') f.seek(0) print(f.read()) f.close()
4.追加
1.a f = open('log',mode='a',encoding='utf-8') f.write('佳琪') f.close() 2.ab f = open('log',mode='ab') f.write('佳琪'.encode('utf-8')) f.close()
二、编码:什么方式编码的,就用什么方式解码
#str --->byte encode 编码 b='中国' s1=b.encode('utf-8')
byte --->str decode 解码 b="中国“ s1 = b.decode('utf-8')
三、功能详解
1. obj = open('log',mode='r+',encoding='utf-8') content = f.read(3) # 读出来的都是字符 2.f.seek(3) # 是按照字节定光标的位置 3.f.tell() #告诉你光标的位置 print(f.tell()) 4.content = f.read() print(content) f.tell()
5.f.readable() # 是否可读
line = f.readline() # 一行一行的读 line = f.readlines() # 每一行当成列表中的一个元素,添加到list中
6.在原文件中截取读取
f.truncate(4)
7.循环读取,
for line in f: print(line) f.close()