文件读写操作

1.open()函数使用格式

f=open(filename,mode)       #将open方法赋值给f变量,open方法是对文件进行读写操作,返回值为file对象,所以是将f赋值给file对象,然后继续读写操作选择
#filenme参数为操作的文件路径,可以是绝对路径,也可以是相对理解
#mode为打开文件的模式,有r(只读)、w(只写)、a(追加)、x(新建)、b(二进制模式,rb/rw/ab,操作bytes数据)、+(读写模式,r+/w+/a+)
f.write()	#进行写操作
f.read()	#进行读取操作
f.close()  		#关闭文件,防止文件内容丢失等风险

2.文件格式读取

#读取文件编码为gbk类型的文本内容(默认是UTF-8)
f=open('gbk.txt','r',encoding='gbk')
f.read()

3.文件对象操作

#读取对象(设置size大小,默认按文本格式读取并输出整个文本内容)
f=open('test.txt','r')   #将f赋值给open()方法对象
str=f.read()		#对open对象进行读取方法的操作,read()方法里面可以带size参数,当读取的文本内容过大时,可以进行设置逐步写入内存读取
print(str) 		#控制台打印显示所有文本内容
f.close()		#调用close()方法关闭文件

## 4.读取对象(读取第一行内容)
f=open('text.txt','r')
str=f.readline()		#以换行符'\n'作为识别,读取一行数据(从第一行开始读取),默认读取整行,带参数可以选择每行的字符个数
print(str)
f.close

#读取多行数据(while循环每循环一次读取一行数据,当读取文本最后一行后,内容为空就退出循环)
while str:
    print(str)
    str=f.readline()    
f.close

5.读取对象(多行读取)

f=open('test.txt','r')
str=f.readlines()	#将文本内容读取至列表中,每行作为一个列表元素,以换行符结尾
print(str)
f.close()
#打印显示每行数据
f=open('song.lrc','r',encoding='utf8')
str=f.readlines()
for line in str:
    print(line)

6.遍历文件(逐行读取文本内容)

f=open('song.lrc','r',encoding='utf8')
for line in f:			#将文件对象作为迭代器使用
    print(line,end='')
f.close()

7.写入对象

f=open('test.txt','w')		#使用open方法把文件对象设置写模式,
f.write('hello')			#对文件调用写方法操作,方法的参数为指定写入的字符串内容
f.close

8.with关键字(上下文管理机制)

#用于处理open()方法读写过程中的异常错误、非正常关闭导致文件损坏问题,不再需要写close()
#打开单个文件
with open('test.txt','w') as f:
	f.write('hello')
 
#打开多个文件
with open('test1.txt','w') as f1,open('text2.txt','w') as f2:    #分别以写和读的模式打开两个文件
    s1=f1.read()     
    f2.write(s1)  #将读模式读取的文件内容写入到写模式的文件中