【Python】os模塊

os 模塊是 Python 標準庫中用于與操作系統交互的核心模塊,提供了許多操作文件和目
錄的函數。

1. 基本介紹

os 模塊提供了以下主要功能:

  • 文件和目錄操作
  • 路徑操作
  • 進程管理
  • 環境變量訪問
import os

2. 常用功能分類

2.1 文件和目錄操作

函數/方法描述
os.getcwd()獲取當前工作目錄
os.chdir(path)改變當前工作目錄
os.listdir(path='.')列出指定目錄下的文件和子目錄
os.mkdir(path)創建單個目錄
os.makedirs(path)遞歸創建多級目錄
os.remove(path)刪除文件
os.rmdir(path)刪除空目錄
os.removedirs(path)遞歸刪除空目錄
os.rename(src, dst)重命名文件或目錄

2.2 路徑操作

函數/方法描述
os.path.abspath(path)返回絕對路徑
os.path.basename(path)返回路徑中的文件名部分
os.path.dirname(path)返回路徑中的目錄部分
os.path.exists(path)檢查路徑是否存在
os.path.isfile(path)檢查是否是文件
os.path.isdir(path)檢查是否是目錄
os.path.join(path1, path2, ...)拼接路徑
os.path.split(path)分割路徑為目錄和文件名
os.path.splitext(path)分割路徑為文件名和擴展名

2.3 系統信息

函數/方法描述
os.name操作系統名稱 (‘posix’, ‘nt’, ‘java’)
os.environ系統環境變量字典
os.getenv(key)獲取指定環境變量值
os.cpu_count()返回CPU數量
os.urandom(n)生成n字節的隨機字節

3. 實用示例

3.1 遍歷目錄

# 列出當前目錄下所有.py文件
for filename in os.listdir('.'):if filename.endswith('.py'):print(filename)

3.2 創建目錄結構

# 創建多級目錄
if not os.path.exists('project/data'):os.makedirs('project/data')

3.3 路徑操作

# 獲取當前腳本所在目錄
script_dir = os.path.dirname(os.path.abspath(__file__))
print(f"腳本所在目錄: {script_dir}")# 構建新路徑
data_path = os.path.join(script_dir, 'data', 'input.txt')
print(f"完整路徑: {data_path}")

3.4 文件信息

# 檢查文件是否存在并獲取大小
if os.path.isfile('example.txt'):size = os.path.getsize('example.txt')print(f"文件大小: {size} 字節")

4. 注意事項

  1. 跨平臺兼容性:不同操作系統路徑分隔符不同,建議始終使用 os.path.join() 拼接路徑
  2. 權限問題:操作文件/目錄時要注意程序是否有足夠權限
  3. 異常處理:文件操作可能拋出異常,建議使用 try-except 處理
  4. 路徑標準化:使用 os.path.normpath() 可以規范化路徑

5. 進階用法

5.1 遞歸遍歷目錄

for root, dirs, files in os.walk('.'):print(f"當前目錄: {root}")print(f"子目錄: {dirs}")print(f"文件: {files}")

5.2 執行系統命令

# 執行系統命令并獲取輸出
output = os.popen('ls -l').read()
print(output)

5.3 臨時文件操作

import tempfile# 創建臨時文件
temp_file = tempfile.mkstemp()
print(f"臨時文件: {temp_file}")

希望這份指南能幫助你掌握 os 模塊的基本用法!在實際開發中,os 模塊經常與其他 模塊如 shutilglob 等配合使用。

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

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

相關文章

ai agent(智能體)開發 python3基礎11: java 調用python waitfor卡死,導致深入理解操作系統進程模型和IPC機制

java 調用python waitfor 卡死 導致瀏覽器無法自動關閉,java ,python雙發無限等待 根源在于還是沒有理解 進程之間標準輸入輸出到底是什么含義 系統進程與跨語言調用的核心機制 在跨語言調用(如Java調用Python)時,理…

Kubernetes(k8s)學習筆記(九)--搭建多租戶系統

K8s 多租戶管理 多租戶是指在同一集群中隔離多個用戶或團隊,以避免他們之間的資源沖突和誤操作。在K8s中,多租戶管理的核心目標是在保證安全性的同時,提高資源利用率和運營效率。 在K8s中,該操作可以通過命名空間(Nam…

同質化的旅游內核

湘西鳳凰古城、北京非常有文藝氛圍的方家胡同都在被改造翻新為現代的其他城市范式式的樣式。 什么意思呢?很多古城的老房子,從外面看,很古老、很漂亮,但是進去以后,完全不是那么回事,整座房子已經被完全掏…

鴻蒙開發——3.ArkTS聲明式開發:構建第一個ArkTS應用

鴻蒙開發——3.ArkTS聲明式開發:構建第一個ArkTS應用 一、創建ArkTS工程二、ArkTS工程目錄結構(Stage模型)三、構建第一個頁面四、構建第二個頁面五、實現頁面之間的跳轉六、模擬器運行 一、創建ArkTS工程 1、若首次打開DevEco Studio,請點擊…

C語言初階:數組

目錄 0.數組要講的知識點 1.一維數組的創建和初始化 1.1 數組的創建: 1.2數組實例: 1.3 數組的初識化: 例子: 2.一維數組的使用 例子: 總結: 3.一維數組在內存中的存儲 4.二維數組的創建和初始化 4.…

UE5 Daz頭發轉Blender曲線再導出ABC成為Groom

先安裝Daz to Blender Import插件 【神器】 --DAZ一鍵導入blender插件的詳細安裝和使用,自帶骨骼綁定和控制器,多姿勢動畫,Importer橋接插件_嗶哩嗶哩_bilibili 然后安裝DAZHairConverter插件 一分鐘將DAZ頭發轉化成Blender粒子毛發_嗶哩嗶…

淺聊find_package命令的搜索模式(Search Modes)

背景 find_package應該算是我們使用最多的cmake命令了。但是它是如何找到上游庫的.cmake文件的? 根據官方文檔,整理下find_package涉及到的搜索模式。 搜索模式 find_package涉及到的搜索模式有兩種:模塊模式(Module mode)和配置模式(Conf…

什么是先驗?(CVPR25)Detail-Preserving Latent Diffusion for Stable Shadow Removal論文閱讀

文章目錄 先驗(Prior)是什么?1. 先驗的數學定義2. 先驗在深度生成模型中的角色3. 為什么需要先驗?4. 先驗的常見類型5. 如何選擇或構造先驗?6. 小結 先驗(Prior)是什么? 在概率統計…

【視覺基礎模型-SAM系列-2】SAM2: Segment Anything in Images and Videos

論文鏈接:SAM 2: Segment Anything in Images and Videos 代碼鏈接:https://github.com/facebookresearch/sam2?tabreadme-ov-file 作者:Nikhila Ravi, Valentin Gabeur, Yuan-Ting Hu, Ronghang Hu, Chaitanya Ryali, Tengyu Ma, Haitham…

OpenShift AI - 模型注冊管理

《OpenShift / RHEL / DevSecOps 匯總目錄》 說明:本文已經在 OpenShift 4.18 OpenShift AI 2.19 的環境中驗證 文章目錄 啟用模型注冊管理功能安裝管理數據庫啟用模型注冊功能 注冊模型部署模型歸檔模型歸檔模型和模型版本恢復歸檔模型 模型注冊表訪問權限管理參考…

【背包dp----01背包】例題三------(標準的01背包+變種01背包1【恰好裝滿背包體積 產生的 最大價值】)

【模板】01背包 題目鏈接 題目描述 : 輸入描述: 輸出描述: 示例1 輸入 3 5 2 10 4 5 1 4輸出 14 9說明 裝第一個和第三個物品時總價值最大,但是裝第二個和第三個物品可以使得背包恰好裝滿且總價值最大。 示例2 輸入 3 8 12 6 11 8 6 8輸出 8 0說明 裝第三個物…

Node.js 的 child_process 模塊詳解

Node.js 的 child_process 模塊提供了創建子進程的能力,使 Node.js 應用能夠執行系統命令、運行其他程序或腳本。這個模塊非常強大,可以幫助我們實現很多復雜的功能。 1. exec - 執行 shell 命令 exec 方法用于執行 shell 命令,并緩沖任何產生的輸出。 特點 創建 shell 來…

進程與線程詳細介紹

目錄 一 進程概念 二 進程的組成 2.1 PCB 2.2 數據段 2.3 程序段 三 進程的五大特點 四 進程的創建與銷毀 五 線程概念 六 線程特征 七 進程與線程的區別與聯系 區別 聯系 一 進程概念 進程是程序的一次執行過程,是操作系統進行資源分配和調度的基本單位…

如何在服務器后臺運行Python腳本,并配置虛擬環境與GPU支持

使用Conda虛擬環境在服務器后臺運行Python腳本,并檢查GPU分配 在服務器開發環境中,我們需要確保Python腳本運行在指定的Conda虛擬環境中,并且確認是否正確分配了GPU資源。本文將通過一個完整的start.sh腳本,完成以下功能&#xff…

前端取經路——工程化渡劫:八戒的構建之道

大家好,我是老十三,一名前端開發工程師。前端工程化就像八戒的釘耙,看似簡單卻能降妖除魔。在本文中,我將帶你探索前端工程化的九大難題,從模塊化組織到CI/CD流程,從代碼規范到自動化測試,揭示這些工具背后的核心原理。無論你是初學者還是資深工程師,這些構建之道都能幫…

Ubuntu 安裝 Keepalived

Keepalived 是什么 Keepalived 是一個用于實現高可用性(High Availability, HA)的服務,是一款基于 VRRP 協議的高可用軟件,常用于主備切換和虛擬IP漂移,在服務故障時自動實現故障轉移。 Keepalived 的核心功能 功能說…

DHCP理解

文章目錄 DHCP理解DHCP的核心作用DHCP默認端口DHCP的工作原理(4個步驟)圖示說明(含中繼代理)DHCP Discover(客戶端發現階段)DHCP Offer(服務器提供階段)DHCP Request(客戶…

云計算-容器云-部署CICD-jenkins連接gitlab

安裝 Jenkins 將Jenkins部署到default命名空間下。要求完成離線插件的安裝,設置Jenkins的登錄信息和授權策略。 上傳BlueOcean.tar.gz包 [root@k8s-master-node1 ~]#tar -zxvf BlueOcean.tar.gz [root@k8s-master-node1 ~]#cd BlueOcean/images/ vim /etc/docker/daemon.json…

AI 大模型新浪潮:從 DeepSeek-Prover 到 Qwen3,再到 DeepSeek-R2,邁向自動推理的新時代20250507

🧠 AI 大模型新浪潮:從 DeepSeek-Prover 到 Qwen3,再到 DeepSeek-R2,邁向自動推理的新時代 🚀 引言:大模型,不止是語言處理器,而是思維建構者 在 2025 年春天,我們見證了…

觀察者模式(Observer Pattern)詳解

文章目錄 1. 什么是觀察者模式?2. 為什么需要觀察者模式?3. 觀察者模式的核心概念4. 觀察者模式的結構5. 觀察者模式的基本實現簡單的氣象站示例6. 觀察者模式的進階實現推模型 vs 拉模型6.1 推模型(Push Model)6.2 拉模型(Pull Model)7. 觀察者模式的復雜實現7.1 在線商…