python標準庫之os操作

Python Os模塊--路徑、文件、系統命令等操作

os模塊包含普遍的操作系統功能。

注意:函數參數path是文件或目錄的路徑,filename是文件的路徑,dirname是目錄的路徑,路徑可以是相對路徑,也可絕對路徑

常見或重要的函數爲加粗字體

os模塊:

os.name ----- 返回當前操作系統名稱('posix', 'nt', 'os2', 'mac', 'ce', 'riscos'),windows爲'nt',linux爲'posix'

 

os中定義了一組文件、路徑在不同操作系統中的表現形式參數,如下:

os.sep --返回路徑各部分之間的分隔符,linux是'/',windows是'\\',由於'\'在python中會轉義,所以返回值是兩個'\'   == os.path.sep

os.extsep ----- 返回文件名和文件擴展名之間的分隔符: '.'

os.pathsep ----- 目錄分隔符,':'

os.linesep ----- 換行分隔符,linux是'\n',windows是'\r\n'

 

os中有大量文件、路徑操作的相關函數,如:

os.listdir(path) ----- 列舉目錄下的所有文件和子目錄

os.getcwd() ----- 獲取當前工作目錄路徑

os.mkdir(dirname) ----- 創建目錄,目錄已存在將不能再創建

os.makedirs(dirname) ----- 遞歸式的創建目錄,上級目錄不存在,將會創建;目錄已存在將不能再創建

os.remove(filename) ----- 刪除指定的文件

os.rmdir(dirname) ----- 刪除一個空目錄

os.removedirs(dirname) ----- 遞歸刪除空目錄,例如 os.removedirs('dir1/dir2/dir3'),dir1下除了dir2還有其他,dir2下只有dir3,則刪除dir3和dir2

os.rename(src, dst) ----- 給文件或目錄改名

os.renames(src, dst) ----- 遞歸式的給文件或目錄改名

os.access(path, mode) ----- 檢驗權限模式,返回值爲bool值。mode參數列表[os.F_OK, os.R_OK, os.W_OK, os.X_OK]

os.F_OK: path是否存在;os.R_OK: path是否可讀; os.W_OK: path是否可寫;os.X_OK: path是否可執行。

os.chdir(path) ----- 改變當前工作目錄

os.walk(path[, topdown=True[, onerror=None[, followlinks=False]]] ) ----- 遍歷路徑下的目錄和文件以及子目錄下的目錄和文件,不管多少層多會遍歷到。 返回一個3-元組的generator:(dirpath, dirnames, filenames)[目錄路徑,目錄名列表,文件名列表]

可選參數:

topdown -- 爲True或者沒有指定,先遍歷目錄再遍歷其子目錄;爲False,一個目錄的3-元組比它的任何子目錄的3-元組後產生

onerror -- 可選,是一個函數; 它調用時有一個參數, 一個OSError實例。報告這錯誤後,繼續walk,或者拋出exception終止walk。

followlinks -- 設置爲 true,則通過軟鏈接訪問目錄。

實例見下一篇: http://www.cnblogs.com/victorwu/p/5840099.html

 

os中與進程相關的操作:

os.system(cmd) ----- 運行一個程序或命令,會立即返回,上述很多操作都可以用該函數完成

os.startfile(filename) ----- 用與文件關聯的程序運行,關聯程序打開後,立即返回

os.execl(path) ----- 運行一個程序來替代當前進程,會阻塞式運行

os._exit(n) ----- 退出程序

 

os.path模塊:

os.path.isfile(path) ----- 檢驗給出的路徑是否是一個文件,返回bool值

os.path.isdir(path) ----- 檢驗給出的路徑是否是一個目錄,返回bool值

os.path.exists(path) ----- 檢驗給出的路徑是否存在,返回bool值

os.path.getsize(path) ----- 獲得路徑(文件或目錄)的大小,如果是目錄,返回0L,以字節爲單位

os.path.abspath(path) ----- 獲得絕對路徑

os.path.normpath(path) ----- 規範path字符串形式,結果把/變爲//

os.path.split(path) ----- 分割路徑名和文件名,返回值爲tuple:(路徑名,文件名.文件擴展名),如果路徑是目錄,則返回:(路徑名,'')

os.path.splitext(path) ----- 分離文件名和擴展名,返回值格式:(文件名,擴展名),如果參數是目錄,則返回:(路徑,'')

os.path.join(path,name) ----- 連接目錄與文件名或目錄,返回值爲:path/name

os.path.basename(path) ----- 返回文件名,實際上把路徑的最後一個"/"分割,返回後者,目錄亦如此

os.path.dirname(path) ----- 返回文件路徑,實際上是把路徑的最後一個"/"分割,返回前者,目錄亦如此

os.path.getatime(path) ----- 文件或文件夾的最後訪問時間,從新紀元到訪問時的秒數

os.path.getmtime(path) ----- 文件或文件夾的最後修改時間

os.path.getctime(path) ----- 文件或文件夾的創建時間

 

更多方法(文件描述符等)見:https://docs.python.org/3/library/index.html

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