1. 程式人生 > >Python:檔案的讀取、建立、追加、刪除、清空

Python:檔案的讀取、建立、追加、刪除、清空

一、用Python建立一個新檔案,內容是從0到9的整數, 每個數字佔一行: #python >>>f=open('f.txt','w')    # r只讀,w可寫,a追加 >>>for i in range(0,10):f.write(str(i)+'\n') .  .  . >>> f.close() 二、檔案內容追加,從0到9的10個隨機整數: #python >>>import random >>>f=open('f.txt','a') >>>for i in range(0,10):f.write(str(random.randint(0,9))) .  .  . >>>f.write('\n') >>>f.close() 三、檔案內容追加,從0到9的隨機整數, 10個數字一行,共10行: #python >>> import random >>> f=open('f.txt','a') >>> for i in range(0,10): .  .  .     for i in range(0,10):f.write(str(random.randint(0,9)))  .  .  .     f.write('\n')     .  .  . >>> f.close() 四、把標準輸出定向到檔案: #python >>> import sys >>> sys.stdout = open("stdout.txt", "w") >>>  . . .

五、檔案的讀寫

一、檔案開啟:

f = file(name[, mode[, buffering]])

入口引數:   name 檔名

                  mode   選項,字串

                  buffering   是否緩衝 (0=不緩衝,1=緩衝, >1的int數=緩衝區大小)

返回值 : 檔案物件

mode 選項:

"r"   以讀方式開啟,只能讀檔案 , 如果檔案不存在,會發生異常      

"w" 以寫方式開啟,只能寫檔案, 如果檔案不存在,建立該檔案

                                                     如果檔案已存在,先清空,再開啟檔案

"rb"   以二進位制讀方式開啟,只能讀檔案 , 如果檔案不存在,會發生異常      

"wb" 以二進位制寫方式開啟,只能寫檔案, 如果檔案不存在,建立該檔案

                                                     如果檔案已存在,先清空,再開啟檔案

"rt"   以文字讀方式開啟,只能讀檔案 , 如果檔案不存在,會發生異常      

"wt" 以文字寫方式開啟,只能寫檔案, 如果檔案不存在,建立該檔案

                                                     如果檔案已存在,先清空,再開啟檔案

"rb+"   以二進位制讀方式開啟,可以讀、寫檔案 , 如果檔案不存在,會發生異常      

"wb+" 以二進位制寫方式開啟,可以讀、寫檔案, 如果檔案不存在,建立該檔案

                                                     如果檔案已存在,先清空,再開啟檔案

二、關閉檔案

f.close()

當檔案讀寫完畢後,應關閉檔案。

三、清空檔案內容

f.truncate()

注意:僅當以 "r+"   "rb+"    "w"   "wb" "wb+"等以可寫模式開啟的檔案才可以執行該功能。

四、檔案的指標定位與查詢

(1)檔案指標:

      檔案被開啟後,其物件儲存在 f 中, 它會記住檔案的當前位置,以便於執行讀、寫操作,這個位置稱為檔案的指標( 一個從檔案頭部開始計算的位元組數 long 型別 )。

(2)檔案開啟時的位置:

      以"r"   "r+"   "rb+" 讀方式, "w"   "w+"   "wb+"寫方式 開啟的檔案,

     一開始,檔案指標均指向檔案的頭部。

(3) 獲取檔案指標的值:

      L = f.tell()

(4) 移動檔案的指標

       f.seek(   偏移量, 選項 )

      選項 =0 時, 表示將檔案指標指向從檔案頭部到 "偏移量"位元組處。

      選項 =1 時, 表示將檔案指標指向從檔案的當前位置,向後移動 "偏移量"位元組。

      選項 =2 時, 表示將檔案指標指向從檔案的尾部,,向前移動 "偏移量"位元組。

五、從檔案讀取指內容   

1 文字檔案(以"rt"方式開啟的檔案)的讀取  

          s = f.readline(     )

        返回值: s 是字串,從檔案中讀取的一行,含行結束符。

        說明: (1)  如果 len( s ) =0 表示已到檔案尾

                    (2)   如果是檔案的最後一行,有可能沒有行結束符

2 二進位制檔案(以"rb"、"rb+"、"wb+" 方式開啟的檔案)的讀取  

          s = f.read(    n )

     說明: (1)  如果 len( s ) =0 表示已到檔案尾

                  (2)   檔案讀取後,檔案的指標向後移動 len(s) 位元組。

                (3)如果磁軌已壞,會發生異常。

六、向檔案寫入一個字串   

    f.write(    s )

    引數:       s 要寫入的字串

    說明: (1)檔案寫入後,檔案的指標向後移動 len(s) 位元組。

                 (2)如果磁軌已壞,或磁碟已滿會發生異常。

返回值: s 是字串,從檔案中讀取的內容

七、刪除檔案

import os

os.remove(file)