python_OS 模組

Carter_qx發表於2019-01-27

 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)

 

相關文章