Python 常用運維模塊之OS模塊篇
- OS 模塊
- 獲取當前工作目錄
- 更改當前工作目錄
- 返回當前目錄路徑
- 返回上一級目錄路徑
- 遞歸生成目錄路徑
- 刪除目錄
- 創建目錄
- 刪除目錄
- 列出特定目錄下文件和子目錄
- 刪除某個特定文件
- 重命名某個文件
- 獲取某個文件/目錄的信息
- 輸出目錄路徑分隔符
- 輸出文件行終止符
- 輸出用于分隔文件路徑的字符串
- 輸出當前操作系統的名稱
- 獲取當前系統的環境變量
- 判斷是否有權限執行操作
- 修改文件的權限
- 修改文件的屬主和屬組
- 創建軟連接
- 獲取系統進程運行時間
OS 模塊
使用os模塊之前需要導入
import os
獲取當前工作目錄
也就是當前python腳本所在的目錄
os.getcwd() 用于獲取當前工作目錄的路徑
例如,如果腳本位于 /home/user 目錄下,運行此代碼會輸出 /home/user
print(os.getcwd())
更改當前工作目錄
切換腳本所在的目錄,類似于cd命令
os.chdir() 用于更改當前工作目錄
如果路徑不存在,會拋出 FileNotFoundError
os.chdir("/path/to/new/directory")
print(os.getcwd()) # 驗證當前目錄是否已更改
返回當前目錄路徑
os.curdir 返回當前目錄的相對路徑,通常是 .
print(os.curdir) # 輸出當前目錄的相對路徑
返回上一級目錄路徑
os.pardir 返回上一級目錄的相對路徑,通常是 …
print(os.pardir) # 輸出上一級目錄的相對路徑
遞歸生成目錄路徑
os.makedirs() 可以遞歸創建多級目錄
如果目錄已存在,會拋出 FileExistsError
os.makedirs("dir1/dir2")
print(os.listdir()) # 驗證目錄是否創建成功
刪除目錄
如果其中有文件,則遞歸刪除
os.removedirs() 遞歸刪除空目錄
如果目錄不為空,會拋出 OSError
os.removedirs("dir1/dir2")
print(os.listdir()) # 驗證目錄是否刪除
創建目錄
不支持遞歸生成目錄
os.mkdir() 創建單級目錄
如果目錄已存在,會拋出 FileExistsError
os.mkdir("new_dir")
print(os.listdir()) # 驗證目錄是否創建成功
刪除目錄
若目錄不為空則無法刪除、報錯
相當于 shell 中的 rmdir
os.rmdir() 刪除空目錄
如果目錄不為空,會拋出 OSError
os.rmdir("new_dir")
print(os.listdir()) # 驗證目錄是否刪除
列出特定目錄下文件和子目錄
os.listdir() 列出指定目錄下的所有文件和子目錄,不包括子目錄中的內容
print(os.listdir("/path/to/directory"))
刪除某個特定文件
os.remove() 刪除指定文件
如果文件不存在,會拋出 FileNotFoundError
os.remove("file.txt")
重命名某個文件
os.rename() 用于重命名文件或目錄
如果目標文件已存在,會拋出 FileExistsError
os.rename("old_file.txt", "new_file.txt")
獲取某個文件/目錄的信息
os.stat() 返回文件或目錄的詳細信息,包括大小、權限、修改時間等
import os
info = os.stat("file.txt")
print(info)
輸出目錄路徑分隔符
可以用于處理不同平臺之間的差異
os.sep 是路徑分隔符
在 Windows 系統中是 **
在 Linux 和 macOS 系統中是 /
print(os.sep) # 輸出路徑分隔符
輸出文件行終止符
可以用于處理不同平臺之間的差異
os.linesep 是行終止符
在 Windows 系統中是 \r\n
在 Linux 和 macOS 系統中是 \n
print(repr(os.linesep)) # 輸出行終止符
輸出用于分隔文件路徑的字符串
可以用于處理不同平臺之間的差異
os.pathsep 是環境變量中路徑分隔符
在 Windows 系統中是 ;
在 Linux 和 macOS 系統中是 :
print(os.pathsep) # 輸出路徑分隔符
輸出當前操作系統的名稱
可以用于處理不同平臺之間的差異
os.name 返回當前操作系統的名稱
print(os.name) # 輸出操作系統名稱
獲取當前系統的環境變量
os.environ 是一個包含所有環境變量的字典
os.environ.get() 可以獲取特定環境變量的值
print(os.environ) # 輸出所有環境變量
print(os.environ.get("PATH")) # 獲取特定環境變量
判斷是否有權限執行操作
os.access() 檢查指定路徑是否有指定權限
os.R_OK 表示讀權限
os.W_OK 表示寫權限
print(os.access("file.txt", os.R_OK)) # 判斷是否有讀權限
print(os.access("file.txt", os.W_OK)) # 判斷是否有寫權限
修改文件的權限
os.chmod() 修改文件的權限,權限值以八進制表示
例如, 0o755 表示所有者有讀寫執行權限,組和其他用戶有讀執行權限
os.chmod("file.txt", 0o755) # 修改文件權限為 755
修改文件的屬主和屬組
os.chown() 修改文件的屬主和屬組
uid 和 gid 分別是用戶 ID 和組 ID
此功能僅在 Unix 系統中可用
os.chown("file.txt", uid, gid) # 修改文件的屬主和屬組
創建軟連接
os.symlink() 創建一個軟鏈接,指向源文件
如果目標文件已存在,會拋出 FileExistsError
os.symlink("source.txt", "link.txt") # 創建軟鏈接
獲取系統進程運行時間
os.times() 返回一個包含進程運行時間的元組,包括用戶時間、系統時間等
print(os.times()) # 輸出進程運行時間