筆記||Python3之文件的讀寫

【文件的讀模式】python

           文件的對象:文件的讀寫經過文件操做對象進行。app

                  Python2  -----  File函數

                  Python3  -----  TextIOWrapper指針

           文件的打開:對象

                  內置函數open(file,mode)   ---  打開文件,獲取文件操做對象。圖片

                  必定要有file文件路徑(路徑、文件名、文件格式)  不然報錯。字符串

                  fo = open(fileDir)   -----  只讀pycharm

           路徑的寫法:①絕對路徑 ----- 從根目錄開始的it

                            ②相對路徑 ------ ./當前位置    ../ 上一級class

                            fileDir = 'C:/test.txt'

                            fileDir = 'C:\\test.txt'

                            fileDir = r'C:\test.txt'  ---  取消轉義

            讀模式:若是該文件不存在會報錯!

                       fo = open(dileDir, 'r')   <==>  fo = open(fileDir)

                       fo.tell()   -------------- 從0開始    顯示指針位置

                       fo.read(2)  ------------ 讀2個字符

                       fo.read() -------------- 讀所有內容

                       文件中的換行是2個長度  \n     'a\nb'  -----  字符串中是一個

                       fo.close()  --- 關閉文件

            移動文件指針位置:seek()

                      0模式: --- 絕對位置模式  fo.seek(1,0)   從0開始  通常像txt、log        r

                                        前提:python3 必定在'rb'模式下 ---- 二進制模式 --- 非文本文件(圖片)     

                      1模式:當前位置開始移動  fo.seek(移動的位數,模式1)  -----  如:fo.seek(-1, 1)        rb

                                   移動的位數 正數:向後移  負數:向前移

 

                       2模式:  ---從尾部位置開始   fo.seek(-1,2)          rb

                                         移動的位數  正數:向後移  負數:向前移

                       代碼例子:

                       fileDir = 'C:/test.txt'

                       fo = open(fileDir, 'rb')     # 打開文件

                       print('讀前',fo.tell())     # 顯示指針當前位置

                       print(fo.read(2))            # 讀2個字符

                       print('讀後',fo.tell())    # 再次顯示指針當前位置

                       fo.seek(2,2)                 # 移動向後移動兩位

                       print(‘移動後’,fo.tell())  # 再一次顯示指針當前位置

             readline:  讀取一行

                       1 - 該方法返回是print(type(fo.readline())) --- <class 'str'>

                       2 - 文件指針會作相應的偏移

             readlines:讀取全部行

                       1 - 該方法返回的是print(type(fo.readlines())) --- <class 'list'>

                 區別:① fo.read()   -------- 返回str

                            ② fo.readlines() -------- 返回是list

                       2 - fo.read().splitlines()  --- 返回list  並且去掉換行符

=================================================================================

【文件寫模式】:

                      寫模式特色:能夠新建文件,若文件不存在則會建立一個新文件;

                                            若是寫模式打開一個文件,全部的內容會被清空。 

                     1 - fo = open(fileDir, 'w')

                     2 - 若是該路徑下的文件存在 --- 會清空

                     3 - 若是該路徑下的文件不存在 ---- 會新建

                     4 - 在pycharm裏面,你執行了fo.write('123') ----- 能夠直接寫進去

                     5 - fo.write('123') --- 返回值  ---- 寫的字符長度

                     6 - fo.flush()  強行寫入文件

                     7 - fo.close()   關閉文件會強行寫入文件

追加模式 a:只是爲了在文件末尾追加內容而打開文件

with open方式:

                     1 - with open(fileDir) as rFile:    ------等價於---------   rF = open(fileDir)

                     2 - 能夠省略fo.close()

                     3 - 操做多個文件

seek: 1 - (1,模式) ---  0模式 ---- 絕對位置,從0開始

             2 - (1,模式) --- 1模式 ---- 當前位置,開始

             3 - (1,模式) --- 2模式 ---- 尾部位置,開始

例子:

           fileDir2 = open('C:/text.txt', 'w')

           fileDir2.write('123456')   # 必定是str

           # 若是寫入時,須要換行時,應該怎麼作?

           fileDir2.write('01-test'+'\n')

           fileDir2.write('02-test')

           fileDir2.flush()    # 寫入

           fileDir2.close()   # 關閉  一樣也會保存

相關文章
相關標籤/搜索