Python標準庫之os模塊常用方法

一、os模塊簡介

os模塊是Python標準庫中與操作系統交互的一個重要模塊。它提供了非常豐富的方法來處理文件、目錄以及與操作系統相關的操作,讓我們可以編寫跨平臺的代碼,無論是在Windows、Linux還是macOS系統上都能運行。

二、文件和目錄操作

  1. 獲取當前工作目錄

    import os
    current_dir = os.getcwd()
    print(current_dir)
    

    這里使用os.getcwd()方法獲取當前Python腳本所在的工作目錄。它返回一個字符串,表示當前工作目錄的路徑。

  2. 改變當前工作目錄

    import os
    new_dir = '/home/user/some_folder'
    try:os.chdir(new_dir)print(f"成功切換到目錄: {os.getcwd()}")
    except FileNotFoundError:print(f"目錄 {new_dir} 不存在")
    

    os.chdir()方法用于改變當前工作目錄。如果指定的目錄不存在,會拋出FileNotFoundError異常。

  3. 創建目錄

    • 創建單個目錄
    import os
    new_dir = 'new_folder'
    try:os.mkdir(new_dir)print(f"目錄 {new_dir} 創建成功")
    except FileExistsError:print(f"目錄 {new_dir} 已存在")
    

    os.mkdir()方法用于創建一個新的目錄。如果目錄已經存在,會拋出FileExistsError異常。

    • 創建多級目錄
    import os
    new_dir = 'parent_folder/child_folder/grandchild_folder'
    try:os.makedirs(new_dir)print(f"目錄 {new_dir} 創建成功")
    except FileExistsError:print(f"目錄 {new_dir} 已存在")
    

    os.makedirs()方法可以遞歸地創建多級目錄。同樣,如果目錄已存在,會拋出FileExistsError異常。

  4. 刪除目錄

    • 刪除單個空目錄
    import os
    dir_to_delete = 'empty_folder'
    try:os.rmdir(dir_to_delete)print(f"目錄 {dir_to_delete} 刪除成功")
    except FileNotFoundError:print(f"目錄 {dir_to_delete} 不存在")
    except OSError:print(f"目錄 {dir_to_delete} 不為空或無法刪除")
    

    os.rmdir()方法只能刪除空目錄。如果目錄不存在,會拋出FileNotFoundError異常;如果目錄不為空,會拋出OSError異常。

    • 刪除非空目錄(需要使用shutil模塊輔助)
    import os
    import shutil
    non_empty_dir = 'non_empty_folder'
    try:shutil.rmtree(non_empty_dir)print(f"目錄 {non_empty_dir} 刪除成功")
    except FileNotFoundError:print(f"目錄 {non_empty_dir} 不存在")
    

    shutil.rmtree()方法可以刪除非空目錄及其所有內容。

  5. 列出目錄內容

    import os
    dir_path = '.'
    contents = os.listdir(dir_path)
    for item in contents:print(item)
    

    os.listdir()方法返回指定目錄中的所有文件和目錄名的列表。這里傳入.表示當前目錄。

三、文件操作

  1. 重命名文件或目錄

    import os
    old_name = 'old_file.txt'
    new_name = 'new_file.txt'
    try:os.rename(old_name, new_name)print(f"重命名成功,從 {old_name}{new_name}")
    except FileNotFoundError:print(f"文件 {old_name} 不存在")
    

    os.rename()方法用于重命名文件或目錄。如果源文件不存在,會拋出FileNotFoundError異常。

  2. 刪除文件

    import os
    file_to_delete = 'file_to_delete.txt'
    try:os.remove(file_to_delete)print(f"文件 {file_to_delete} 刪除成功")
    except FileNotFoundError:print(f"文件 {file_to_delete} 不存在")
    

    os.remove()方法用于刪除文件。如果文件不存在,會拋出FileNotFoundError異常。

四、操作系統相關信息獲取

  1. 獲取操作系統名稱

    import os
    os_name = os.name
    if os_name == 'posix':print("這是類Unix系統,如Linux或macOS")
    elif os_name == 'nt':print("這是Windows系統")
    

    os.name屬性返回操作系統的名稱,posix表示類Unix系統,nt表示Windows系統。

  2. 獲取環境變量

    import os
    path_env = os.getenv('PATH')
    print(f"PATH 環境變量: {path_env}")
    

    os.getenv()方法用于獲取指定環境變量的值。這里獲取PATH環境變量,它包含了系統用于查找可執行文件的目錄列表。

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

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

相關文章

利用AI讓數據可視化

1. 從問卷星上下載一份答題結果。 序號用戶ID提交答卷時間所用時間來源來源詳情來自IP總分1、《中華人民共和國電子商務法》正式實施的時間是()。2、()可以判斷企業在行業中所處的地位。3、()是指店鋪內有…

K8S學習之基礎三十五:k8s之Prometheus部署模式

Prometheus 有多種部署模式,適用于不同的場景和需求。以下是幾種常見的部署模式: 1. 單節點部署 這是最簡單的部署模式,適用于小型環境或測試環境。 特點: 單個 Prometheus 實例負責所有的數據采集、存儲和查詢。配置簡單&…

【第14節】windows sdk編程:進程與線程介紹

目錄 一、進程與線程概述 1.1 進程查看 1.2 何為進程 1.3 進程的創建 1.4 進程創建實例 1.5 線程查看 1.6 何為線程 1.7 線程的創建 1.8 線程函數 1.9 線程實例 二、內核對象 2.1 何為內核對象 2.2 內核對象的公共特點 2.3 內核對象句柄 2.4 內核對象的跨進程訪…

Python簡單爬蟲實踐案例

學習目標 能夠知道Web開發流程 能夠掌握FastAPI實現訪問多個指定網頁 知道通過requests模塊爬取圖片 知道通過requests模塊爬取GDP數據 能夠用pyecharts實現餅圖 能夠知道logging日志的使用 一、基于FastAPI之Web站點開發 1、基于FastAPI搭建Web服務器 # 導入FastAPI模…

uniapp工程中解析markdown文件

在uniapp中如何導入markdown文件,同時在頁面中解析成html,請參考以下配置: 1. 安裝以下3個依賴包 npm install marked highlight.js vite-plugin-markdown 2. 創建vite.config.js配置文件 // vite.config.js import { defineConfig } fro…

sass介紹

1、Sass簡介 Sass 是一種 CSS 的預編譯語言。它提供了 變量(variables)、嵌套(nested rules)、 混合(mixins)、 函數(functions)等功能,并且完全兼容 CSS 語法。Sass 能…

[JavaScript]如何利用作用域塊避免閉包內存泄漏?

出自《你不知道的JavaScript》上卷 以下是本書給出的反例: function process (data) {...} var bigdata{...} process(bigdata); var btn document.getElementById(x); btn.addEventListener(click, function click{...});click會被回調在其他位置, 在addEventListener函數內…

leetcode hot100(五)

11. 盛最多水的容器 給定一個長度為 n 的整數數組 height 。有 n 條垂線,第 i 條線的兩個端點是 (i, 0) 和 (i, height[i]) 。 找出其中的兩條線,使得它們與 x 軸共同構成的容器可以容納最多的水。 返回容器可以儲存的最大水量。 說明:你…

Unity 云渲染本地部署方案

Unity Render Streaming 云渲染環境搭建 0.安裝 Unity Render Streaming 實現原理: 服務器與客戶端實現功能包括: 詳細內容見官方文檔: 官方文檔: https://docs.unity3d.com/Packages/com.unity.renderstreaming3.1/manual/tutorial.html Unity 流送云渲染介紹: …

洛谷 P3986 斐波那契數列

P3986 斐波那契數列 題目描述 定義一個數列: f ( 0 ) a , f ( 1 ) b , f ( n ) f ( n ? 1 ) f ( n ? 2 ) f(0) a, f(1) b, f(n) f(n - 1) f(n - 2) f(0)a,f(1)b,f(n)f(n?1)f(n?2) 其中 a, b 均為正整數,n ≥ 2。 問有多少種 (a, b)&…

【java面型對象進階】------繼承實例

繼承結構下的標準Javabean 代碼如下: package demo10;//定義員工父類 public class Employee {private String id;private String name;private double salary;//構造方法public Employee(){}public Employee(String id,String name,double salary){this.idid;thi…

Vitis 2024.1 無法正常編譯custom ip的bug(因為Makefile里的wildcard)

現象:如果在vivado中,添加了自己的custom IP,比如AXI4 IP,那么在Vitis(2024.1)編譯導出的原本的.xsa的時候,會構建build失敗。報錯代碼是: "Compiling blank_test_ip..."…

【圖論】并查集的學習和使用

目錄 并查集是什么? 舉個例子 組成 父親數組: find函數: union函數: 代碼實現: fa[] 初始化code: find code: 遞歸實現: 非遞歸實現: union code : 畫圖模擬: 路徑壓縮&#xff1a…

Java使用FFmpegFrameGrabber進行視頻拆幀,結合Thumbnails壓縮圖片保存到文件夾

引入依賴 <dependency><groupId>net.coobird</groupId><artifactId>thumbnailator</artifactId><version>0.4.17</version></dependency><dependency><groupId>org.bytedeco</groupId><artifactId>ja…

mysql與redis的日志策略

MySQL 和 Redis 在日志記錄方面采用了不同的策略&#xff0c;分別對應寫前日志&#xff08;Write-Ahead Logging, WAL&#xff09;和寫后日志&#xff08;Write-After Logging&#xff09;。以下是它們的詳細說明&#xff1a; 1. MySQL&#xff1a;寫前日志&#xff08;Write-A…

nacos安裝,服務注冊,服務發現,遠程調用3個方法

安裝 點版本下載頁面 服務注冊 每個微服務都配置nacos的地址&#xff0c;都要知道 服務發現 2個是知道了解 遠程調用基本實現 遠程調用方法2&#xff0c;負載均衡API測試 遠程調用方法3&#xff0c;注解 負載均衡的遠程調用&#xff0c; 總結 面試題

Ubuntu Qt: no service found for - “org.qt-project.qt.mediaplayer“

1、前言 在一次項目過程中&#xff0c;因項目需求&#xff0c;需要將windows開發的Qt項目遷移到ubuntu系統中&#xff0c;且在某個功能項中需要播放音頻&#xff0c;在windows系統中能夠正常運行&#xff0c;但在ubuntu系統中卻顯示defaultServiceProvider::requestService(): …

Blender制作次表面材質

效果: 主要用沃羅諾伊紋理做出云絮感 然后EV開啟次表面設置

用 pytorch 從零開始創建大語言模型(四):從零開始實現一個用于生成文本的GPT模型

從零開始創建大語言模型&#xff08;Python/pytorch &#xff09;&#xff08;四&#xff09;&#xff1a;從零開始實現一個用于生成文本的GPT模型 4 從零開始實現一個用于生成文本的GPT模型4.1 編寫 L L M LLM LLM架構4.2 使用層歸一化對激活值進行標準化4.3 使用GELU激活函數…

vmware tools灰化

Windows7 32位的某些版本&#xff0c;已經不被vmware支持。下面是解決方法&#xff1a; 安裝kb4474419補丁包&#xff1a;https://www.catalog.update.microsoft.com/Search.aspx?qKB4474419網絡共享。必須要虛擬機和主機可通信。此方法不錯&#xff0c;但是操作起來太麻煩。…