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')    #將新文件重命名

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章