Python 常用運維模塊之OS模塊篇

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 系統中是 **
LinuxmacOS 系統中是 /

print(os.sep)  # 輸出路徑分隔符

輸出文件行終止符

可以用于處理不同平臺之間的差異
os.linesep 是行終止符
Windows 系統中是 \r\n
LinuxmacOS 系統中是 \n

print(repr(os.linesep))  # 輸出行終止符

輸出用于分隔文件路徑的字符串

可以用于處理不同平臺之間的差異
os.pathsep 是環境變量中路徑分隔符
Windows 系統中是 ;
LinuxmacOS 系統中是 :

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() 修改文件的屬主和屬組
uidgid 分別是用戶 ID 和組 ID
此功能僅在 Unix 系統中可用

os.chown("file.txt", uid, gid)  # 修改文件的屬主和屬組

創建軟連接

os.symlink() 創建一個軟鏈接,指向源文件
如果目標文件已存在,會拋出 FileExistsError

os.symlink("source.txt", "link.txt")  # 創建軟鏈接

獲取系統進程運行時間

os.times() 返回一個包含進程運行時間的元組,包括用戶時間、系統時間等

print(os.times())  # 輸出進程運行時間

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/66675.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/66675.shtml
英文地址,請注明出處:http://en.pswp.cn/web/66675.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

uniapps使用HTML5的io模塊拷貝文件目錄

最近在集成sqlite到uniapp的過程中,因為要將sqlite數據庫預加載,所以需要使用HTML5的plus.io模塊。使用過程中遇到了許多問題,比如文件路徑總是解析不到等。尤其是應用私有文檔目錄’_doc’。 根據官方文檔: 為了安全管理應用的…

使用 F12 查看 Network 及數據格式

在瀏覽器中,F12 開發者工具的 “Network” 面板是用于查看網頁在加載過程中發起的所有網絡請求,包括 API 請求,以及查看這些請求的詳細信息和響應數據的。以下以常見的 Chrome 瀏覽器為例,介紹如何使用 F12 控制臺查看 Network 里…

Redis 2.6.12在Win10系統上的安裝教程

諸神緘默不語-個人CSDN博文目錄 這個版本的安裝包是跟同事要的,em,如果真的需要這個版本的話可以跟我要: 解壓后雙擊第一個bat文件,即可掛起Redis服務:

分布式數據庫中間件(DDM)的使用場景

華為云分布式數據庫中間件(DDM)是一款專注于解決數據庫分布式擴展問題的中間件服務,突破了傳統數據庫的容量和性能瓶頸,能夠實現海量數據的高并發訪問。以下是九河云總結的DDM的典型使用場景: 1. 互聯網應用 在電商、…

Ubuntu16.04 安裝OpenCV4.5.4 避坑

Ubuntu16.04 安裝C版OpenCV4.5.4 Ubuntu16.04 VSCode下cmakeclanglldb調試c 文章目錄 Ubuntu16.04 安裝C版OpenCV4.5.41. 下載Opencv壓縮包2. 安裝Opencv-4.5.43. 配置OpenCV的編譯環境4.測試是否安裝成功 1. 下載Opencv壓縮包 下載Opencv壓縮包,選擇source版本。…

RabbitMQ集群安裝rabbitmq_delayed_message_exchange

1、單節點安裝rabbitmq安裝延遲隊列 安裝延遲隊列rabbitmq_delayed_message_exchange可以參考這個文章: rabbitmq安裝延遲隊列-CSDN博客 2、集群安裝rabbitmq_delayed_message_exchange 在第二個節點 join_cluster 之后,start_app 就會報錯了 (CaseC…

QT開發:事件循環與處理機制的概念和流程概括性總結

事件循環與處理機制的概念和流程 Qt 事件循環和事件處理機制是 Qt 框架的核心,負責管理和分發各種事件(用戶交互、定時器事件、網絡事件等)。以下是詳細透徹的概念解釋和流程講解。 1. 事件循環(Event Loop)的概念 …

博客搭建 — GitHub Pages 部署

關于 GitHub Pages GitHub Pages 是一項靜態站點托管服務&#xff0c;它直接從 GitHub 上的倉庫獲取 HTML、CSS 和 JavaScript 文件&#xff0c;通過構建過程運行文件&#xff0c;然后發布網站。 本文最終效果是搭建出一個域名為 https://<user>.github.io 的網站 創建…

網絡通信---MCU移植LWIP

使用的MCU型號為STM32F429IGT6&#xff0c;PHY為LAN7820A 目標是通過MCU的ETH給LWIP提供輸入輸出從而實現基本的Ping應答 OK廢話不多說我們直接開始 下載源碼 LWIP包源碼&#xff1a;lwip源碼 -在這里下載 ST官方支持的ETH包&#xff1a;ST-ETH支持包 這里下載 創建工程 …

【MySQL】存儲引擎有哪些?區別是什么?

頻率難度60%???? 這個問題其實難度并不是很大&#xff0c;只是涉及到的相關知識比較繁雜&#xff0c;比如事務、鎖機制等等&#xff0c;都和存儲引擎有關系。有時還會根據場景選擇不同的存儲引擎。 下面筆者將會根據幾個部分盡可能地講清楚 MySQL 中的存儲引擎&#xff0…

【系統環境丟失恢復】如何恢復和重建 Ubuntu 中的 .bashrc 文件

r如果你遇到這種情況&#xff0c;說明系統環境的.bashrc 文件丟失恢復&#xff1a; 要恢復 ~/.bashrc 文件&#xff0c;可以按照以下幾種方式操作&#xff1a; 恢復默認的 ~/.bashrc 文件 如果 ~/.bashrc 文件被刪除或修改&#xff0c;你可以恢復到默認的版本。可以參考以下…

人工智能丨智能化測試解決方案全面解析

智能化測試解決方案通過整合前沿的人工智能技術與自動化測試技術&#xff0c;為軟件產品的測試工作帶來了前所未有的高效與智能。 智能化測試解決方案主要內容 大語言模型私有部署&#xff1a;確保文檔理解、代碼分析和測試生成過程中的安全與隱私&#xff0c;讓你無后顧之憂…

Element修改表格結構樣式集合(后續實時更新)

場景 修改前端Element組件el-table樣式 實現 線表格 <div class"tablepro"><el-table:data"tableData":header-cell-style"{ textAlign:center}"class"tablepro-table"borderstyle"width: 100%;height:100%"&g…

C++語言的語法糖

C語言的語法糖 在現代編程語言的設計中&#xff0c;語法糖&#xff08;Syntactic Sugar&#xff09;是一個非常重要的概念。它指的是一種編程語言所提供的語法特性&#xff0c;使得代碼更加簡潔易讀&#xff0c;編寫更加方便&#xff0c;而不是增加語言的功能。C作為一種強大的…

基于Redis實現短信驗證碼登錄

目錄 1 基于Session實現短信驗證碼登錄 2 配置登錄攔截器 3 配置完攔截器還需將自定義攔截器添加到SpringMVC的攔截器列表中 才能生效 4 Session集群共享問題 5 基于Redis實現短信驗證碼登錄 6 Hash 結構與 String 結構類型的比較 7 Redis替代Session需要考慮的問題 8 …

c++入門----模板深入探究與仿函數

1.模板參數加入一個變量 一般只能是int&#xff0c;double要看c的版本&#xff0c;在最新的版本下是支持double模板參數的。 2.適配器的使用 template <class T,class containerdeque<T>> class stack { public:void push_back(const T& x) {_con.push_back…

【Vim Masterclass 筆記22】S09L40 + L41:同步練習11:Vim 的配置與 vimrc 文件的相關操作(含點評課內容)

文章目錄 S09L40 Exercise 11 - Vim Settings and the Vimrc File1 訓練目標2 操作指令2.1. 打開 vimrc-sample 文件2.2. 嘗試各種選項與設置2.3. 將更改內容保存到 vimrc-sample 文件2.4. 將文件 vimrc-sample 的內容復制到寄存器2.5. 創建專屬 vimrc 文件2.6. 對于 Mac、Linu…

kafka學習筆記5 PLAIN認證——筑夢之路

在Kafka中&#xff0c;SASL&#xff08;Simple Authentication and Security Layer&#xff09;機制包括三種常見的身份驗證方式&#xff1a; SASL/PLAIN認證&#xff1a;含義是簡單身份驗證和授權層應用程序接口&#xff0c;PLAIN認證是其中一種最簡單的用戶名、密碼認證方式&…

深入解析 Spring 框架中的事務傳播行為

目錄 &#xff08;一&#xff09;REQUIRED &#xff08;二&#xff09;SUPPORTS &#xff08;三&#xff09;MANDATORY &#xff08;四&#xff09;REQUIRES_NEW &#xff08;五&#xff09;NOT_SUPPORTED &#xff08;六&#xff09;NEVER &#xff08;七&#xff09;NE…

60,【1】BUUCF web [RCTF2015]EasySQL1

先查看源碼 1&#xff0c;changepwd&#xff08;修改密碼&#xff09; <?php // 開啟會話&#xff0c;以便使用會話變量 session_start();// 設置頁面的內容類型為 HTML 并使用 UTF-8 編碼 header("Content-Type: text/html; charsetUTF-8");// 引入配置文件&…