打开文件的模式
# r模式只读模式,在这个模式下面不能往文件写内容否则报错 f = open('a.txt', 'r', encoding='utf8') print(f.read()) f.close() # w模式只写模式,在这个模式下面不能读内容否则报错 # 这个模式下面有一点要特别注意,如果用w模式打开一个有内容的文件,文件的内容会被清空。一定要慎重!!!! f = open('a.txt', 'w', encoding='utf8') print(f.write('abc')) f.close() # a模式追加模式,在这个模式下面不能读取内容否则报错 # 这个模式下面打开文件,不会清空文件内容,写入文件默认在最后添加 f = open('a.txt', 'a', encoding='utf8') print(f.write('abc')) f.close() # ======================= 下面的模式需要跟rwa组合使用 ======================= # b模式 # 注意这个模式下面不能指定encoding,否则报错 # 这个模式是能写入bytes类型的数据,不能写入文本 f = open('a.txt', 'wb') f.write('abc'.encode('utf8')) f.close() # 读出的也是bytes类型 f = open('a.txt', 'rb') f.read() f.close() # t模式(默认模式) # 这个模式是open的一个默认模式,只能读写字符类型,需要指定encoding f = open('a.txt', 'wt') f.write('abc') f.close() # 读出的也是字符类型 f = open('a.txt', 'rt') f.read() f.close() # +模式 # 这个模式给rwa模式添加他们没有的功能 f = open('a.txt', 'w+') # 赋予w读文件的功能 f.close() f = open('a.txt', 'a+') # 赋予a读文件的功能 f.close() f = open('a.txt', 'r+') # 赋予r写文件的功能 f.close()
指针操作
# 获取指针位置 f.tell() # 移动指针 # seek有三种移动方式0,1,2,其中1和2必须在b模式下进行,但无论哪种模式,都是以bytes为单位移动的 f.seek(3, 0) # 以文件开头为对照,移动3个bytes f.seek(3, 1) # 以指针当前位置为对照,移动3个bytes f.seek(3, 2) # 以文件结尾为对照,移动3个bytes # # 2. truncate是截断文件 f.truncate(n) # 如果传入n,保留文件起始位置开始到n的数据,其余的删除 f.truncate() # 如果不传n,保留文件起始位置开始到指针所在位置,其余的删除
内置方法
#掌握 f.read() #读取所有内容,光标移动到文件末尾 f.readline() #读取一行内容,光标移动到第二行首部 f.readlines() #读取每一行内容,存放于列表中 f.write('1111 222 ') #针对文本模式的写,需要自己写换行符 f.write('1111 222 '.encode('utf-8')) #针对b模式的写,需要自己写换行符 f.writelines(['333 ','444 ']) #文件模式 f.writelines([bytes('333 ',encoding='utf-8'),'444 '.encode('utf-8')]) #b模式 #了解 f.readable() #文件是否可读 f.writable() #文件是否可读 f.closed #文件是否关闭 f.encoding #如果文件打开模式为b,则没有该属性 f.flush() #立刻将文件内容从内存刷到硬盘 f.name