打开文件
f=open(‘笔记2.txt‘,‘a+‘,encoding=‘utf-8‘)
文件打开的方式--如果打开文件没有指定默认读模式
r读模式 文件不存在是报错,不可写
r+读写模式 文件不存在时报错
w写模式 不可读,写的内容会覆盖之前的内容
w+写读模式 写的内容会覆盖之前的内容
a 追加不可读
a+ 追加读写模式 文件不存在是新建,可读可写,追加不覆盖
文件方法
f=open(‘笔记2.txt‘,‘w+‘,encoding=‘utf-8‘)#打开文件 print(f.read())#读文件 print(f.readline())#只读取一行 print(f.readlines())#读取所有的内容,返回的是list,每行都是一个list元素 f.write(names)#write只接收str f.writelines(names)#writelines传入的可迭代的对象,包括list,tuple,dict f.seek(0)#seek移动指针,但对读有效,对写无效,移动后写还是写在最后 f.truncate()#清空文件内容 print(f.tell())#查看当前文件指针的位置
文件指针
#问题1 f=open(‘笔记2.txt‘,‘a+‘,encoding=‘utf-8‘) print(f.read()) #问题2 f=open(‘笔记2.txt‘,‘w+‘,encoding=‘utf-8‘) f.write(‘666‘+‘\n‘) print(f.read()) #问题3 print(f.readline())#只读取一行 print(f.readlines())#读取所有的内容,返回的是list,每行都是一个一个list元素,上边read了第一行,再read指针就到了第二行,从第二行开始读
问题1:打开笔记2后read为空,因为以“a+”模式打开文件,默认指针指向最后,所以读不出内容,需要手动把指针指向文件开始
问题2:write后,read为空,因为write后指正指向文件末尾,需要重新打开文件或指定指针位置
问题3:读取一行后,再读,发现少了第一行,是因为指针到了第二行,从第二行开始读
高效处理文件实例
#内存8G,文件7g,打开,把所有内容放在了内存里,一下内存就满了,电脑就卡死了
#解决,读一行处理一行,readline不可以,因为不知道多少次
fw=open(‘lsy.txt‘,encoding=‘utf-8‘) #直接循环文件对象的话,就是循环文件里的每一行 for f in fw: f =f.strip() nu=f.split(‘,‘) print(nu)