文本文件具备初步存放、编辑各类数据的能力并可以持久保留和数据共享。1. 建立文件建立文本文件有两种途径一是通过Windows的“记事本”工具创建一个扩展名为“.txt”的文件然后供程序调用。二是通过程序自动建立新文件。1.1 文本文件代码实现1234newfileg:\\t1.txt#定义需要建立的文本名称和路径b_new_fileopen(newfile,w)#用open函数建立一个新的文本文件b_new_file.close()#关闭文件print(%s成功建立%newfile)效果1.2 代码编写分析文本文件的名称1文本名称命名要符合命名内容一般情况下以英文字母、数字、汉字开头的易于阅读的字符串组合。不能使用星号*等特殊符号开头的命名。2文本名称是一个字符串命名过程中需要考虑到转义符号对路径或名称的影响。如“g:\t1.txt”中的“\t”本身就是一个横向制表符如果用“g:\t1.txt”就会出错。另一种解决字符串转义符的方法是在字符串前加原始字符串限制符号原生字符r或R可以原样输出r“g:\t1.txt”。3指定路径必须设置在不同的解释器中对于路径的设置有区别用open函数建立打开文件open函数属于系统内置函数支持对字符串或二进制文件的打开操作返回可操作的文件对象。使用格式open(file,mode“w”)file参数用于指定需要操作的文件名可以同时只当文件路径mode参数用于指定需要操作的方式。r、w、x、a为打开文件的基本模式对应这只读、只写、新建、追加四种打开方式b、t、、U与基本模式组合使用对应二进制、文本、读写、通用换行符四种模式。mode默认值为“rt”模式意味着对文本文件进行读操作。目前mode值常见可以组合的方式为“rb、”wb“、”xb“、”ab“、”rt“、”wt“、”xt“、”at“、”r“、”w“、”x“、”a“。用b_new_file.close()方法把新建立的文件关闭如果不关闭新建立的文本文件则打开的文件对象一直留存在内存中如果打开的文件多了容易出现内存溢出等错误。2. 基本的读写文件打开文本文件后可以对文件进行基本的读写操作。2.1 用文件对象write(s)方法写内容f.write(s)f代表可写方式打开文件对象s为将要写入文件的内容write()方法把s内容写入文件f后返回写入的字节数。12345newfileg:\\t1.txt#定义需要建立的文本名称和路径b_new_fileopen(newfile,w)#用open函数建立一个新的文本文件t_nb_new_file.write(l like python!)#用文件对象write()方法写字符串b_new_file.close()#关闭文件print(往文件里写入%d字节内容%t_n)效果”w“模式打开的文本文件在写入内容时第二次写入的内容会覆盖第一次保存的内容若要解决此问题采用”a“模式打开文件。2.2 用文件对象read()方法读取内容f.read(size)f代表可读方式打开的文件对象size为可选参数若指定读取字节数则读取指定大小字节的内容若没有指定则读取尽可能大的内容。1234b_new_fileopen(newfile,r)#以只读方式打开文件ttb_new_file.read()#用文件对象read()方法读取内容print(tt)b_new_file.close()效果2.3 连续用read()方法、write()方法操作文件123456b_new_fileopen(newfile,r)#用open函数建立一个新的文本文件ttb_new_file.read()#用文件对象read()方法读取内容print(tt)t_nb_new_file.write(\n三酷猫^_^)#继续往文件里写入新内容b_new_file.close()print(往文件里写入%d字节内容%t_n)效果注意不鼓励连续读写操作方法因为存在读写数据不确定性问题3. 复杂的读写文件在基础的读写存在上可以考虑多行读写的操作。1、一次写入多行123456nums[one,two,three,four,five,six,seven]topen(rg:\t2.txt,a)#追加打开文件forget_oneinnums:t.write(get_one\n)#将每个元素循环写入文件行末加\nt.close()print(连续写入完成)效果2、一次读一行f.readline(s)f代表以可读模式打开的文件s为可选参数若设置指定大小的字节则返回相应大小的字符串若没有设定则以行单位返回字符串。12345t1open(rg:/t2.txt,r)dd1whiledd:ddt1.readline()#一次读一行print(dd.strip())#strip()去除字符串两端的空字符效果3、以列表格式读取多行123t1open(rg:/t2.txt,r)t_st1.readlines()#以列表格式读取多行print(t_s)效果4、连续读特定字节数量的内容12345fopen(rg:/t2.txt,r)print(f.readline(2))#读取文件头2个字节print(f.readline())#继续读取同一行剩余字节print(f.read(4))#继续读取4个字节print(f.read(4))效果5、在指定位置读内容5.1 f.tell()f代表打开的文件tell()方法返回当前文件可以写入读写的位置字节数12345678fopen(rg:/t2.txt,r)print(f.readline(2))#读取文件头2个字节print(f.readline())#继续读取同一行剩余字节print(f.read(4))#继续读取4个字节print(f.read(4))print(f.tell())#获取执行上述操作后的当前位置print(f.read(1))print(f.tell())效果5.2 f.seek(offset[,whence]) f代表以打开的文件seek()方法重新指定将要读写的当前位置。offset参数设置位置的偏移量的字节数whence参数可选确定文件起计位置默认值为SEEK_SET或0代表从文件大的开始位置偏移量来确定当前位置SEEK_SET(或1)代表当前位置起计SEEK_END或2代表从文件的结尾起计。