天天看點

Python學習筆記 os 子產品

目錄

  - 簡述

  - os 子產品

  - os.path 子產品

簡述

  os 子產品提供了一些友善實用作業系統相關功能的函數,可以用來處理檔案和目錄,是Python系統和作業系統進行互動的一個接口,而 os.path 子產品則提供了一些常見的對路徑進行操作的函數。下面我們将詳細的講解 os 和 os.path 提供的函數。

題外話: 有關讀寫一個檔案,請參閱 open();有關在指令行上讀取所有檔案中的所有行請參閱 fileinput 子產品;有關建立臨時檔案和目錄的方法,請參閱 tempfile 子產品;對于進階檔案目錄處理,請參閱 shutil 子產品。

os 子產品

一些變量

os.curdir:傳回表示目前目錄的字元串,始終為 '.'
    os.pardir:傳回表示父目錄的字元串,始終為 '..'
    os.extsep:擴充分隔符,始終為 '.'
    os.sep:傳回目前系統特定的路徑名分隔符,win:'\'(需要用'\\'表示,print('\\')# \);Linux:'/'
    os.pathsep:傳回于分割檔案路徑的字元串 win下為';',Linux下為':'
    os.name:傳回字元串表示目前使用平台,win:'nt',Linux:'posix'
    os.altsep:備用路徑名分隔符,(None 或 '/')
    os.linesep:文本檔案中的行分隔符,('\r' 或 '\n' 或 '\r\n')
    os.defpath:可執行檔案的預設搜尋路徑
    os.environ:擷取系統環境變量
           

一些函數

os.getcwd()
        功能:傳回目前 Python腳本的工作目錄
        參數:無
        傳回值:一個字元串

    os.chdir(dirname)# 支援指定檔案描述符
        功能:将目前工作目錄更改為指定的路徑,相當于 shell 下的 cd
        參數:dirname 是一個字元串,表示路徑名
        傳回值:None

    os.mkdir(dirname)
        功能:建立單級目錄,相當于 shell 中 mkdir dirname
        參數:dirname 是一個字元串,表示目錄名
        傳回值:None

    os.makedirs(name [, mode=0o777][, exist_ok=False]
        功能:生成多層遞歸目錄
        參數:name是一個字元串,表示多層目錄
        傳回值:None
        舉例:makedirs('dirname1/dirname2') # 表示在目前工作目錄建立一個名為 dirname1 的檔案,并在 dirname1 檔案内建立 dirname2 檔案

    os.rmdir(dirname)
        功能:删除單級空目錄,若目錄不為空則抛出異常;相當于shell中rmdir dirname
        參數:dirname 是一個字元串,表示目錄名
        傳回值:None

    os.removedirs(name)
        功能:若目錄為空,則删除,并遞歸到上一級目錄,如若也為空,則删除,依此類推,若不為空,則抛出異常
        參數:name 是一個字元串,表示目錄名
        傳回值:None

    os.rename(name_old, name_new)
        功能:重命名檔案
        參數:name_old 表示要重命名的檔案目錄,name_new 表示新名字
        傳回值:None
        說明:預設 name_old 和 name_new 在目前工作目錄,如果需要重命名其他目錄的檔案,則兩個參數都需要包含路徑名

    os.remove(path) # 在測試時不知道為啥一直拒絕通路,望知者告之
        功能:删除一個檔案
        參數:path 是一個字元串,表示檔案名或路徑
        傳回值:None

    os.listdir(dirname)
        功能:傳回一個清單,包含指定目錄下的所有檔案和子目錄,包括隐藏檔案
        參數:dirname 是一個字元串,表示目錄名
        傳回值:一個清單

    os.stat(dirname)
        功能:擷取檔案/目錄資訊
        參數:dirname 可以是字元串,位元組,打開的檔案描述符等,它表示檔案/目錄
        傳回值:一個 os.stat_result 類型對象

    os.system(command)
        功能:運作shell指令,直接顯示
        參數:command 表示指令語句
        傳回值:一個整數
           

os.path 子產品

PS:以下所有函數的參數除了說明的類型之外,還可以接受位元組類型的參數,如果傳回路徑或檔案名,則傳回值和參數是相同類型的對象。3.6版本之後,部分函數可接受類似 os.PathLike 類型的對象(os.PathLike 是用于實作檔案系統路徑協定的抽象基類)

os.path.abspath(path)
        功能:傳回路徑名 path 的标準化絕對路徑
        參數:path 是一個字元串,表示檔案或路徑名
        傳回值:一個字元串,表示 path 的标準化絕對路徑
        
     os.path.split(path)
          功能:将檔案路徑和檔案名分割(會将最後一個目錄作為檔案名而分離)
          參數:path 是一個字元串,表示路徑
          傳回值:一個二進制組,分别是分割後的路徑個檔案名
          
      os.path.basename(path)
          功能:傳回 path 的檔案名部分
          參數:path 是一個字元串或路徑對象,表示一個路徑
          傳回值:路徑最後的檔案名
          
      os.path.dirname(path)
          功能:傳回 path 的目錄部分
          參數:path 是一個字元串,表示路徑名
          傳回值:一個字元串
      
      os.path.commonpath(paths)
          功能:給定一系列路徑名,傳回最長的公共子路徑
          參數:paths 是一個序列,包含多個路徑,若多個路徑都沒有公共子路徑會抛出異常
          傳回值:一個字元串,表示公共子路徑
      
      os.path.commonprefix(list)
          功能:傳回 list 中,所有路徑共有的最長的字首路徑
          參數:list 是一個包含多個路徑的清單
          傳回值:若清單為空,則傳回空字元串,否則傳回最長字首路徑(由于是一個字元一個字元的傳回,故傳回的可能是無效的路徑)
          
      os.path.exists(path)
          功能:判斷路徑是否存在,對于斷開的符号連結傳回 False
          參數:path 是一個字元串,表示路徑名
          傳回值:如果 path 存在,傳回 True;如果 path 不存在,傳回 False
          
      os.path.lexists(path)
          功能:判斷路徑是否存在,對于斷開的符号連結傳回 True
          參數:path 是一個字元串,表示路徑名
          傳回值:如果 path 存在,傳回 True;如果 path 不存在,傳回 False
          
      os.path.isabs(path)
          功能:判斷 path 是否是絕對路徑
          參數:path 是一個字元串,表示路徑名
          傳回值:是則傳回 True,否則傳回 False
      
      os.path.isfile(path)
          功能:判斷檔案 path 是否存在
          參數:path 是一個字元串,表示檔案名
          傳回值:是則傳回 True,否則傳回 False
      
      os.path.isdir(path)
          功能:判斷目錄 path 是否存在
          參數:path 是一個字元串,表示目錄名
          傳回值:是則傳回 True,否則傳回 False
          
      os.path.getatime(path)
          功能:傳回path所指向的檔案或者目錄的最後通路時間
          參數:path 是一個字元串,表示檔案名或路徑名
          傳回值:一個浮點數,表示自紀元以來的秒數
          
      os.path.getmtime(path)
          功能:傳回 path 所指向的檔案或者目錄的最後修改時間
          參數:path 是一個字元串,表示檔案名或路徑名
          傳回值:一個浮點數,表示自紀元以來的秒數
          
      os.path.getctime(path) 
          功能:windows:傳回檔案建立時間;unix:傳回最後一次中繼資料更改的時間
          參數:path 表示檔案名
          傳回值:一個浮點數,表示自紀元以來的秒數
      
      os.path.getsize(path)
          功能:傳回 path 的大小
          參數:path 是一個字元串,表示檔案名或路徑名
          傳回值:一個整數,表示 path 的大小
      
      os.path.join(path1[, path2[, ...]])  将多個路徑組合後傳回,第一個絕對路徑之前的參數将被忽略
          功能:将多個路徑組合後傳回,第一個絕對路徑之前的參數将被忽略
          參數:path1、path2...是多個字元串,表示路徑名
          傳回值:一個字元串,表示組合後的路徑
          
      os.path.islink(path)
          功能:判斷 path 是否是符号連結    
          參數:path 表示路徑
          傳回值:是傳回 True,否則傳回 False,對于6.0之前的 Windows,始終傳回 False
      
      os.path.normcase(path)
          功能:規範路徑名的大小寫,在Windows上,将路徑名中的所有字元都轉換為小寫,并将正斜杠轉換為反斜杠。在其他作業系統上,傳回路徑不變
          參數:path 是一個字元串,表示路徑名
          傳回值:一個字元串,表示規範後的路徑
      
      os.path.realpath(path)
          功能:傳回 path 的規範路徑
          參數:path 一個字元串,表示檔案或路徑名
          傳回值:一個字元串,表示規範路徑
      
      os.path.relpath(path[, start])
          功能:從目前目錄或可選的起始目錄傳回到 path 的相對檔案路徑
          參數:path 是一個字元串,表示檔案或路徑,start 是一個字元串,表示起始目錄,預設為 None,表示目前工作目錄
          傳回值:一個字元串,表示相對路徑
          
      os.path.samefile(path1, path2)
          功能:判斷 path1 和 path2 是否是相同檔案或目錄
          參數:path1 和 path2 都是字元串,表示檔案或目錄名
          傳回值:是則傳回 True,否則傳回 False
      
      os.path.sameopenfile(fp1, fp2)
          功能:判斷檔案描述符fp1和fp2是否指向同一檔案
          參數:fp1 和 fp2 表示檔案描述符
          傳回值:是則傳回 True,否則傳回 False手冊
           

關于 os 子產品和 os.path 子產品更多更詳細的内容,請參考 Python 文檔 os 和 os.path