1. 程式人生 > >python-檔案操作及os模組常用函式

python-檔案操作及os模組常用函式

一、檔案操作

1.open(file,op):開啟指定檔案file,若檔案不存在則建立。其中file為檔名,file的路徑預設為程式所在的位置,也可指定file的路徑。

  op"模式":

                     (1)“r”或無:若省略引數op,則 只讀模式 ,若檔案不存在則會報錯,寫檔案操作也會報錯;

      (2)“w”:開啟並可寫檔案模式。若檔案已存在,則以前的內容將被清除。

      (3)“a”:向檔案中追加文字。a模式不會把原來內容清空,而是游標移到內容最後位置,繼續寫入新內容。

2.檔案操作函式:

              (1)write(astring):向檔案中寫內容,寫入的內容不會自動換行,但可使用換行符“\n”。如:a.write("one line"),此時檔案test.txt中出現內容“one line”。

    (2)close():關閉檔案物件。對一個檔案的操作結束是呼叫。如:a.close()。

    (3)readline():從文字中讀取一行文字,該函式返回一行的文字字串,包括換行符“\n”。第一次使用返回檔案的第一行文字,第二次返回第二行文字,依此類推。

             使用迴圈可遍歷檔案中的每一行文字。 

    (4)read():從檔案讀取指定的位元組數,如果未給定或為負則讀取所有。(即使用read()之前沒有使用readline())。

    (5)readlines():讀取所有行並返回列表,  遍歷返回的列表即可得到每一行的內容。

二、os模組常用函式:檔案路徑相關(使用前要匯入os模組:import os)
1、os.path:與路徑有關的模組,包含了路徑操作相關的函式。由於路徑也是一個字串,因此,操作路徑和操作字串是一樣的。


 1)os.path.isfile(filepath):檢查路徑是不是指向一個檔案(注:不是指資料夾)。返回TRUE or FALSE。


2)os.path.join(dir1,dir2):將目錄名組合成路徑。如:os.path.join("d","test") ->d\test.(不同系統下輸出不完全一致)


 3)os.path.split(filepath):將路徑filepath的最後一個元件(即目錄名或檔名)提取出來。                       #—>修改、組合檔案路徑:os.path.join(path ,' .jpg ')

                                              該函式返回包含兩個項的元組(或兩個值):(最後一個元件的)父目錄路徑和最後一個元件。

                                              如:os.path.split("c:\\python\\test")->("c:\\python","test")。


              注:利用此函式可以用遞迴的方法將一個路徑完全分解為目錄名:
          def split_fully(path):
            parent,name = os.path.split(path)
            if name == “”: #當一個路徑不能再被分解時,第二個值就會返回空字串
              return (parent,) #返回一個元組
            else
              return split_fully(parent) +(name,)
          呼叫:split_fully("D:\\a\\b\\c") ->("D:\\","a","b","c")


 4)os.path.splitext(filename):將一個檔案的  名稱和副檔名 分開(即分離副檔名,從而判斷檔案型別)。

                                                              如:s = os.path.splitext("test.txt")->s = ("test",".txt"),s[1]->可獲得副檔名,若s[1]為空字串,則為資料夾。

2、os.listdir(path):返回一個目錄下所有名稱條目,包括檔案和子目錄等內容。若目錄路徑不存在則報WindowsError錯誤。

      注:1.返回的條目只是一個名稱,沒有包含路徑,可以用os.path.join(path,條目名)得到相應條目的路徑。
        2.可對返回的條目進行排序(其實就是列表排序):sorted(os.listdir(path)),預設排序規則:數字->大寫字母->小寫字母

3、shutil模組常用函式:檔案重新命名、移動、複製、刪除(使用前先匯入shutil模組:import shutil)

 1)shutil.move(src,dest):重新命名或移動檔案(而不是移動目錄(即資料夾))。

      注:1)dest所指向的是一個檔案,則為重新命名;若指向的是一個目錄(即資料夾)則為移動檔案。

        2)src必須指向一個存在的檔案,否則不會報錯。重新命名後的檔案可為任意命名,甚至檔案可不帶字尾。

                             3)os.rename(src,dest)也具有重新命名和移動檔案的功能,但不常用。

 2)shutil.copy(src,dest):複製檔案。可重新命名新檔案。

3)刪除檔案:os.remove(file)。注:此方法不是shutil模組的方法。

4、目錄操作:建立和刪除目錄(此處的目錄可理解為Windows下的資料夾)

 1).os.mkdir(dir):建立目錄,要建立的目錄的父目錄必須存在。

 2).os.makedirs(dir):建立目錄,要建立的目錄的父目錄可不存在。若父目錄不存在則建立父目錄。<簡單粗暴>

 3).os.rmdir(dir):刪除目錄,僅對空目錄有效。若目錄中檔案則不能刪除。