os模組
用於提供系統級別的操作
1 os.getcwd() 2 # 獲取當前工作目錄,即當前python指令碼工作的目錄路徑 3 4 os.chdir("dirname") 5 # 改變當前指令碼工作目錄;相當於shell下cd 6 7 os.curdir 8 # 返回當前目錄: (`.`) 9 10 os.pardir 11 # 獲取當前目錄的父目錄字串名:(`..`) 12 13 os.makedirs(`dirname1/dirname2`) 14 # 可生成多層遞迴目錄 15 16 os.removedirs(`dirname1`) 17 # 若目錄為空,則刪除,並遞迴到上一級目錄,如若也為空,則刪除,依此類推 18 19 os.mkdir(`dirname`) 20 # 生成單級目錄;相當於shell中mkdir dirname 21 22 os.rmdir(`dirname`) 23 # 刪除單級空目錄,若目錄不為空則無法刪除,報錯;相當於shell中rmdir dirname 24 25 os.listdir(`dirname`) 26 # 列出指定目錄下的所有檔案和子目錄,包括隱藏檔案,並以列表方式列印 27 28 os.remove() 29 # 刪除一個檔案 30 31 os.rename("oldname","newname") 32 # 重新命名檔案/目錄 33 34 os.stat(`path/filename`) 35 # 獲取檔案/目錄資訊 36 37 os.sep 38 # 輸出作業系統特定的路徑分隔符,win下為"\",Linux下為"/" 39 40 os.linesep 41 # 輸出當前平臺使用的行終止符,win下為" ",Linux下為" " 42 43 os.pathsep 44 # 輸出用於分割檔案路徑的字串 45 46 os.name 47 # 輸出字串指示當前使用平臺。win->`nt`; Linux->`posix` 48 49 os.system("bash command") 50 # 執行shell命令,直接顯示 51 52 os.environ 53 # 獲取系統環境變數 54 55 os.path.abspath(path) 56 # 返回path規範化的絕對路徑 57 58 os.path.split(path) 59 # 將path分割成目錄和檔名二元組返回 60 61 os.path.dirname(path) 62 # 返回path的目錄。其實就是os.path.split(path)的第一個元素 63 64 os.path.basename(path) 65 # 返回path最後的檔名。如何path以/或結尾,那麼就會返回空值。即os.path.split(path)的第二個元素 66 67 os.path.exists(path) 68 # 如果path存在,返回True;如果path不存在,返回False 69 70 os.path.isabs(path) 71 # 如果path是絕對路徑,返回True 72 73 os.path.isfile(path) 74 # 如果path是一個存在的檔案,返回True。否則返回False 75 76 os.path.isdir(path) 77 # 如果path是一個存在的目錄,則返回True。否則返回False 78 79 os.path.join(path1[, path2[, ...]]) 80 # 將多個路徑組合後返回,第一個絕對路徑之前的引數將被忽略 81 82 os.path.getatime(path) 83 # 返回path所指向的檔案或者目錄的最後存取時間 84 85 os.path.getmtime(path) 86 # 返回path所指向的檔案或者目錄的最後修改時間
print(os.path.dirname(r`C:acd.txt`)) # 返回path的目錄。其實就是os.path.split(path)的第一個元素 print(os.path.basename(r`C:acd.txt`)) # 返回path最後的檔名。如何path以/或結尾,那麼就會返回空值。即os.path.split(path)的第二個元素 print(os.path.exists(r`C:acd.txt`)) # 如果path存在,返回True;如果path不存在,返回False print(os.path.exists(r`C:IntelLogsIntelGFX.log`)) print(os.path.isabs(r`C:acd.txt`)) # 如果path是絕對路徑,返回True print(os.path.isabs(r`acd.txt`)) print(os.path.isfile(r`C:acd.txt`)) # 如果path是一個存在的檔案,返回True。否則返回False print(os.path.isfile(r`C:IntelLogsIntelGFX.log`)) print(os.path.isdir(r`C:IntelLogs`)) # 如果path是一個存在的目錄,則返回True。否則返回False print(os.path.isdir(r`C:acd.txt`)) print(os.path.join(`C:\`, `a`, `b`, `a.txt`)) # 將多個路徑組合後返回,第一個絕對路徑之前的引數將被忽略 print(os.path.getatime(r`C:IntelLogsIntelGFX.log`)) # 返回path所指向的檔案或者目錄的最後存取時間 print(os.path.getsize(r`C:IntelLogsIntelGFX.log`)) # 返回path的大小
在Linux和Mac平臺上,該函式會原樣返回path,在windows平臺上會將路徑中所有字元轉換為小寫,並將所有斜槓轉換為反斜槓。
import os res = os.path.normcase(`c:/windows\system32\`) print(res) 規範化路徑,如..和/ res = os.path.normpath(`c://windows\System32\../Temp/`) print(res) a = `/Users/jieli/test1/\a1/\\aa.py/../..` print(os.path.normpath(a))
os路徑處理
# 方法一: import os import sys res = os.path.normpath(os.path.join( os.path.abspath(__file__), os.pardir, os.pardir )) sys.path.insert(0, res) print(res) # 方法二: res = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) print(res)