Python文件操作tips:本文根据b站黑马python类整理链接指引=>2022新版黑马程序员python教程1.文件编码里面有很多可用的编码计算机:UTF-8GBKBig5等UTF-8是目前世界上通用的编码格式,除非有特殊要求,所有文件都应采用UTF-8格式编码。2.文件读取2.1open()打开函数注意:此时f为open函数的文件对象,该对象是Python中的一种特殊数据类型,具有属性和方法。你可以使用object.attribute或者object.method访问它,后续的面向对象课程会给你详细的介绍。name:一串要打开的目标文件的名称(可以包含文件所在的具体路径)。mode:设置打开文件的方式(accessmode):只读、写入、追加等encoding:编码格式(推荐UTF-8)open(name,mode,encoding)example:f=open('./test.txt','r',encoding='utf-8')2.2模式常用三种基本访问模式模式说明f以只读方式打开文件。文件指针将放置在文件的开头。这是默认模式。w打开一个只写文件。如果文件已经存在,打开文件从头开始编辑,原来的内容会被删除。如果该文件不存在,则创建一个新文件。a打开文件进行追加。如果该文件已经存在,则新内容将写入现有内容之后。如果该文件不存在,则创建一个新文件用于写入。2.3读操作相关方法操作概要操作函数fileobject=open(file,mode,encoding)打开文件获取文件objectfileobject.read(num)读取指定字节长度
不指定num为读取所有文件Object.readline()读取一行文件object.readlines()读取所有行并获取文件对象中行的列表for循环文件行,并在一个循环中获取一行数据。fileobject.close()关闭文件对象withopen()因为f通过withopen语法打开文件,可以自动关闭2.3.1read()方法:#num表示要读取的数据长度文件(以字节为单位),如果不传入num,则表示读取文件中的所有数据。Fileobject.read(num)2.3.2readlines()方法:readlines可以逐行一次读取整个文件的内容,返回一个列表,其中每一行的数据是一个元素。f=open('python.txt')content=f.readlines()#['helloworld\n','abcdefg\n','aaa\n','bbb\n','ccc']print(content)#关闭文件f.close()例子:readline()方法:一次读取一行内容f=open('python.txt')content=f.readline()print(f'第一行:{content}')content=f.readline()print(f'第二行:{content}')#关闭文件f.close()for循环读取文件行:forlineinopen("python.txt","r"):print(line)#每行临时变量记录文件中的一行数据2.3.3close()关闭文件对象f=open("python.txt","r")f.close()#最后通过close关闭文件对象,即关闭文件的占用#如果不调用close,程序也没有停止运行,那么这个文件会一直被Python程序占用.2.3.4withopen语法withopen("python.txt","r")asf:f.readlines()#在withopen#的语句块中操作文件,操作完成后可以自动关闭close文件完成,避免忘记close方法案例:通过读文件操作读取这个文件,统计itheima这个词出现的次数pythonitcastbeijingshanghaiitheimashenzhenguangzhouitheimawuhanhangzhouitheimazhengzhoubigdataitheimindex=0withopen('./test.txt','r',encoding='utf-8')asf:forlineinf:line=line.strip()#print(line)str=line.split('')print(str)forvalinstr:ifval=='it':index+=1print(f'index:{index}')3.文件写入3.1写入操作快速入门注意:直接调用write,内容并没有真正写入到文件中,但会累积在程序的内存中,称为缓冲区。当调用flush时,内容实际上会被写入到文件中。这样做是为了避免频繁操作硬盘,导致效率下降(存一堆,一次性写入磁盘)。如果文件不存在,使用“w”模式会创建一个新文件。如果文件存在,使用“w”方式清除原来的内容。示例:#1.打开文件f=open('python.txt','w')#2.写入文件f.write('helloworld')#3.刷新内容f.flush()4.追加文件4.1追加写操作快速入门注:a模式,如果文件不存在,则创建文件a模式,如果文件存在,则创建文件最后,添加写入文件case演示:#1.打开文件,打开方式为f=open('python.txt','a')#2.写入文件f.write('helloworld')#3.内容刷新f.flush()五、文件操作综合案例文件备份案例完成:bill.txtname,date,money,type,remarks周杰伦,2022-01-01,100000,消费,官方周杰伦,2022-01-02、30万、收入、官方周杰伦、2022-01-03、10万、消费、试林君节、2022-01-01、30万、收入、官方林君节、2022-01-02、10万、消费、试临君节2022-01-03100000消费官临君节2022-01-04100000消费试临君节2022-01-05500000收入官张学友2022-01-01、100000、消费、官方张学友、2022-01-02、500000、收入、官方张学友、2022-01-03、90万、收入、测试王丽红、2022-01-01、500000、消费、正规王丽红,2022-01-02,300000,消费,测试王丽红,2022-01-03,950000,收入,正式刘德华,2022-01-01,300000,消费,测试刘德华,2022-01-02,100000,消费,正式刘德华,2022-01-03,300000,consumption,formalf2=open('bill.txt.bak','a',encoding="utf-8")withopen('bill','r',encoding="UTF-8")asf:forf中的行:line=line.strip()str=line.split(',')ifstr[4]=='Test':continueelse:f2.write(f'{line}\n')f2.close()上面总结的就是Python文件操作,后面会继续更新。欢迎大家点赞关注~~
