文件创建:
open('path',模式)
打开文件的模式:
r:以只读方式打开文件(默认),指针在文件开头 w:以写入的方式打开文件,会覆盖已存在的文件 x:如果文件已经存在,使用此模式打开将引发异常 a:以写入模式打开,如果文件存在,则在末尾追加写入 b:以二进制模式打开文件 t:以文本模式打开(默认) +:可读写模式 U:通用换行符支持
r+b:读写模式打开
w+b:写读模式打开
a+b:追加及读模式打开
常用函数:
f.close() #关闭文件 f.flush() #刷新文件内部缓冲 f.read(size=-1) #从文件读取size个字符,当未给定size或给定负值的时候,读取剩余的所有字符,然后作为字符串返回 f.next() #返回文件下一行 f.write(str) #写入文件 f.readline() #读取整行,包括 "\n" 字符,以列表形式返回 f.writelines(seq) #向文件写入多行,写入速度比write快。 f.seek(offset,from) #在文件中移动文件指针,从from(0代表起始位置,1代表当前位置,2代表文件末尾)偏移offset个字节 f.tell() #返回当前在文件中的位置 f.name() #返回文件名称 f.mode() #返回文件访问模式
例1:
>>> f = open('E:\\test.txt','w') #在E盘下新建test.txt文件,并追加写入属性,注意:如果文本存在时会覆盖之前内容。 >>> f.write('************') 12 >>> f.close() #关闭文件 >>> f = open('E:\\test.txt') >>> f.read() '************' >>> f = open('D:\\test.txt','a+') #如果文本存在,则在后面追加,不会覆盖之前的内容。 >>> f.write('This is a test!') 15 >>> f.close() >>> f = open('D:\\test.txt') >>> f.read() '************This is a test!'
例2:新建一个test.txt文件并编辑其内容,最后找出test.txt文件中you的数量
import re count = 0 file = open('D:\\test.txt','w') file.write("you\nyou're my superstar!\nyouaasdad\n5rtyoudfasf") file.close() file = open('D:\\test.txt','r')
for k in file.readlines(): r = re.findall('you',k) if len(r) > 0: count = count + len(r) print('count :',count) file.close()
输出结果:
count : 4
例3:把test.txt中的'you'替换成she,并保存到原来文件中。
f1 = open('D:\\test.txt','r') f2 = open('D:\\test1.txt','w') for m in f1.readlines(): f2.write(m.replace('you','she')) f1.close() f2.close() f1 = open('D:\\test.txt','r') f2 = open('D:\\test1.txt','r') print(f1.read()) print('--------------我是分割线----------------') print(f2.read())
输出结果:
you you're my superstar! youaasdad 5rtyoudfasf --------------我是分割线---------------- she she're my superstar! sheaasdad 5rtshedfasf