python基础(文件读写)
#1、有一个文件
#2、打开文件 #3、操作文件 读、写 #4、关闭 #只读、写模式、追加模式,默认的是只读默认 #'r' 读模式 # 'w' 写模式---如果之前有内容会删除 # 'a' 追加模式 # 'b' 二进制模式(可添加到其他模式中使用) # '+' 读或者写模式(可添加到其他模式中使用) # r只读,r+读写,不创建 # w新建只写,w+新建读写,二者都会将文件内容清零(以w方式打开,不能读出。w+可读写) # r+:可读可写,若文件不存在,报错;w+: 可读可写,若文件不存在,创建 #以a,a+的方式打开文件,附加方式打开(a:附加写方式打开,不可读;a+: 附加读写方式打开) S = 'a+' f = open(r'D:\users.txt', 'a+')#使用r就不用转译符了,用系统自带的绝对路径了 或者使用D:\/进行转译 f.seek(0)#移动文件指针,0代表从文件开头开始算起 print(f.read())#获取文件里的所有内容 f.write('yangfan1,12345\n')#写入内容 f.close()#关闭文件,是为了释放资源,如果不close(),那就要等到垃圾回收时,自动释放资源。垃圾回收的时机是不确定的,也无法控制的
文件修改:
#-----文件修改--------- #第一种方法,直接修改然后删除并写入 f=open(r'D:\users.txt',encoding='utf-8') s=f.read().replace('哈哈','呵呵') f.close() f=open(r'D:\users.txt','w',encoding='utf-8') f.write(s) f.flush()#不等缓冲区是否满了,立即把缓冲区内容写入磁盘。 f.close() #文件修改 f = open(r'D:\users.txt','a+',encoding='utf-8') f.seek(0) s = f.read().replace('呵呵', '哈哈')#修改文件内容,把呵呵修改为哈哈 f.seek(0)#需要加这个指针,不然在末尾追加会出现重复数据 f.truncate()#清空文件的内容 f.write(s) f.close() #文件修改,第三种方法,当修改文件本身内容比较多时,使用这种方式。 # 先修改一个文件并新建一个文件,然后删除原有文件,并将新文件命名为原有文件的名字 import os with open(r'D:\users.txt',encoding='utf-8') as f,open(r'D:\users12.txt','w',encoding='utf-8')as f2: #打开多个文件用,号隔开,with as自动判断什么时候关闭文件,不用每次都写.close() for a in f: new_a=a.replace('嘎嘎','nini') f2.write(new_a) os.remove('D:\users.txt')#删除users12.txt文件 os.rename('D:\users12.txt','D:\users.txt')#修改文件名,将users12.txt修改为users.txt
高效处理文件:
#高效处理文件:直接循环文件里的对象,叫做文件句柄 f= open(r'D:\users.txt') for line in f : print(line)
浙公网安备 33010602011771号