一、从文本文件中读取数据
读取文本文件中的数据需要三个步骤:
1、打开文件
格式:f=open(file,mode="r")
作用:按mode指定的方式打开file指定的文本文件。open函数返回一个_io.TextIOWrapper对象。如果文件不存在,则会触发FileNotFoundError异常。文件名可包含路径。不包含路径时为当前工作路径。如:f=open("infs.txt")。
特别提示:
mode参数也可取以下值:
(1)"r+"。打开文件后,可以读取数据,也可以将数据写入文件。文件必须存在。
(2)"w+"。打开文件后,可以读取数据,也可以将数据写入文件。文件存在则覆盖;文件不存在则创建。
(3)"a+"。打开文件后,可以读取数据,也可以将数据写入文件(数据只能添加到文件尾)。文件不存在则创建。
2、读取数据
从文本文件读取的数据是字符串。读取数据的主要方法有:
(1)使用read方法
格式:read([size])
作用:从文件当前位置读取size字节。不指定size时读取全部数据。
(2)使用readline方法
格式:readline(size=-1)
作用:从当前位置读取一行数据(size=-1时,包括回车符)。如果size>0,则只读取一行的前size个字符。
(3)使用readlines方法
格式:readlines(hint=-1)
作用:读出所有行(hint=-1时)。返回的是以行为元素的列表。如果hint>0,则仅读取第hint个字符所在行及其前面各行的数据。
(4)使用文件对象(是可迭代对象)。如:
f=open("a.txt")
a=list(f)
f.close( )
3、关闭文件
调用文件对象的close方法即可关闭文件。
特别提示:
(1)也可使用with语句打开文件,这时读取数据后文件会自动关闭,无需调用文件对象的close方法。如:with open("a.txt") as f:d=f.read()
(2)利用seek(offest,0)可以重定位文件读写位置。参数offest指定相对文件开始位置需要移动的字节数。
二、将数据写入文本文件
只能将字符串写入文本文件。基本步骤是:
1、打开文件
格式:f=open(file,mode="w")
作用:打开file指定的文本文件,打开的文件只能写入数据,不能读取数据。如果文件存在,则会清空文件内容。如果文件不存在,则会创建文件。也可将参数mode设置为"a"(追加模式,只能将数据添加到文件尾)、"r+"、"w+"、"a+"。请参考“从文本文件读取数据”的“打开文件”部分。
2、将数据写入文件
可以使用以下方法将数据写入文件:
(1)文件对象的write方法
格式:write(str)
作用:将数据写入文件。str必须是字符串。
示例:f=open("c:\\x.txt","w");f.write("good");f.close()
(2)文件对象的writelines方法
格式:writelines(line)
作用:将多行数据写入文件。line为行数据组成的列表。
示例:f=open("C:\\x.txt","w");f.writelines(['a\n','b\n','c']);f.close()
(3)print函数
格式:print(*obj,sep=' ',end='\n',file)
作用:在文件对象file上输出obj指定的数据。
示例:f=open("C:\\x.txt","w");print("How are you",file=f);f.close()
3、关闭文件
调用文件对象的close方法即可关闭文件。
特别提示:
(1)也可使用with语句打开文件,这时读取数据后文件会自动关闭,无需调用文件对象的close方法。如:with open("a.txt","w") as f:f.write("good")
(2)利用seek(offest,0)可以重定位文件写入位置。参数offest指定相对文件开始位置需要移动的字节数。

