Python进阶篇---文件读写(下)

1、对文件内容的循环展示

        1)先定义一个文件对象

                f = open('一朵丁香花',encoding = 'utf-8')

        2)直接循环文件对象,每次循环时,就是取每一行的数据

                for line in f:

                    print('line:',line)

                运行结果:

                ①先查看下文本文件:

                    

                ②查看运行结果:

                    

2、文件的高效读写

    1)open的方式

            fw = open('wangmd','w')    #用写模式,打开wangmd这个文件

            fw.write('lalala')    #缓冲区

            fw.flush()    #将缓冲区里面的数据立即写到磁盘上

            fw.close()    #关闭文件

            运行结果:

                    

    2)with的方式

            with open('wangmd','w') as fw:    #用with的方式打开文件

                fw.write('xxx') #写入xxx

            运行结果:

                

        两种方式的对比:

                利用open打开文件,每次执行完open之后,需要执行close操作关闭文件。而with的话,执行完open后,会自动关闭文件,不需要再加上close操作。

3、将文件中的内容进行替换

        方法一:简单粗暴,弊处:只适用于内容较少的文件,内容较多效率会低

                1、先获取到文件里面所有的内容

                2、修改内容

                3、清空原来文件里面的内容

                4、重新写入

            1)获取到文件里面的内容

                    f = open('userinfo','a+')    #打开userinfo文件

                    f.seek(0)    #将文件指针挪到最前面

                    all_data = f.read()    #读取文件中的信息

            2)修改内容

                    new_data = all_data.replace('aaa','bbb')    #将文件中的aaa替换为bbb

                    f.seek(0)

            3)清空原来文件里面的内容

                   f.truncate()    #清空文件内容

            4)重新写入

                    f.write(new_data)

                    f.flush()

                    f.close()

        方法二:高效的处理方式

            1、先打开原文件,再打开一个空文件

            2、循环处理原来文件里面的每一行数据,处理完之后,写到新文件里面

            3、把原来的文件删除,将新闻界的名字改成原来的

                    import os    #引入os

                    with open('aaa',encoding = 'utf-8') as fr, open('.aaa','w',encoding = 'utf-8') as fw:   

                         #用读模式打开原文件,用写模式打开新文件

                        for line in fr:

                            line = line.lstrip()    #去掉左边的空行

                            if line:    #判断这一行是否有数据

                                line = line.replace('aaa','bbb')    #将文件中的aaa全部替换为bbb

                                fw.write(line)    #写到新文件中

                        os.remove('aaa')    #删除原来的文件

                        os.rename('.aaa','aaa')    #将新文件重命名

猜你喜欢

转载自blog.csdn.net/xxdyxxdy/article/details/80644497