文件操作

一、打开文件的模式

文件操作分为3个过程,文件打开,操作文件,关闭文件

f=open('1.txt','r',encoding='utf-8')  #打开文件
data=f.read()               #操作文件
f.close()                 #关闭文件
print(data)

每次都要关闭文件很麻烦,而且有可能在实际工作操作的时候忘了关闭文件,所以我们用另一种操作,用with语句来操作,这样就不需要手动来关闭文件。

# 用with语句打开,不需要自动关闭
with open('1.txt','r',encoding='utf-8') as f:
    print(f.read())

文件打开方式:

#1. 打开文件的模式有(默认为文本模式):
r ,只读模式【默认模式,文件必须存在,不存在则抛出异常】
w,只写模式【不可读;不存在则创建;存在则清空内容】
a, 只追加写模式【不可读;不存在则创建;存在则只追加内容】

#2. 对于非文本文件,我们只能使用b模式,"b"表示以字节的方式操作(而所有文件也都是以字节的形式存储的,使用这种模式无需考虑文本文件的字符编码、图片文件的jgp格式、视频文件的avi格式)
rb 
wb
ab
注:以b方式打开时,读取到的内容是字节类型,写入时也需要提供字节类型,不能指定编码

#3. 了解部分
"+" 表示可以同时读写某个文件
r+, 读写【可读,可写】,写的时候在末尾追加,指针移到到最后
w+,写读【可读,可写】,存在的话先清空 一写的时候指针到最后
a+, 写读【可读,可写】打开的时候指针已经移到最后,写的时候不管怎样都往文件末尾追加


x, 只写模式【不可读;不存在则创建,存在则报错】
x+ ,写读【可读,可写】
xb

 

二、操作文件的方法

#掌握
f.read() #读取所有内容,光标移动到文件末尾
f.readline() #读取一行内容,光标移动到第二行首部
f.readlines() #读取每一行内容,存放于列表中

f.write('1111\n222\n') #针对文本模式的写,需要自己写换行符
f.write('1111\n222\n'.encode('utf-8')) #针对b模式的写,需要自己写换行符
f.writelines(['333\n','444\n']) #文件模式
f.writelines([bytes('333\n',encoding='utf-8'),'444\n'.encode('utf-8')]) #b模式

#了解
f.readable() #文件是否可读
f.writable() #文件是否可读
f.closed #文件是否关闭
f.encoding #如果文件打开模式为b,则没有该属性
f.flush() #立刻将文件内容从内存刷到硬盘
f.name

 

posted @ 2018-04-26 16:20  实验体一号  阅读(152)  评论(0编辑  收藏  举报