當前位置:
首頁 > 知識 > Python OS模塊簡介

Python OS模塊簡介

Python OS模塊簡介

在本教程中,我們將學習怎樣使用Python中的os模塊。

目錄表

  1. 簡介

  2. 基本函數

  3. 列出當前工作目錄的文件/目錄

  4. 改變工作目錄

  5. 創建單個和嵌套目錄結構

  6. 遞歸刪除單個和嵌套目錄結構

  7. 數據處理實例

  8. 結論

簡介

Python是近年來用於數據處理、數據分析和網站構建等各種任務的最常用語言之一。在處理這些任務的過程中,有許多任務依賴於操作系統。Python允許開發人員通過Python中的os模塊使用多個依賴於操作系統的功能。這個包抽象了平台的功能,並提供了相關python函數來導航、創建、刪除和修改文件和文件夾。在本教程中,你將了解如何導入這個包、它的基本功能以及使用這個庫執行數據合併任務的python示例項目。

基本函數

我們通過一些實例代碼來學習一下這個模塊。

導入庫:

Python OS模塊簡介

我們來獲取本模塊可以使用的方法列表:

Python OS模塊簡介

輸出:

Python OS模塊簡介

現在,使用getcwd方法我們可以獲取當前工作目錄路徑。

Python OS模塊簡介

輸出:

Python OS模塊簡介

列出文件夾和文件

我們使用 listdir 來列出當前目錄的文件夾/文件:

Python OS模塊簡介

輸出:

Python OS模塊簡介

如你所看到的,我有兩個文件夾: Data 和 Population_Data ,三個文件: README.md markdown 文件, 以及兩個名為 tutorial.pytutorial_v2.py的Python文件。

為了獲取我的項目文件夾的樹形結構,我們來寫一個函數,使用 os.walk 來迭代當前目錄下每個文件夾中的所有文件。

Python OS模塊簡介

在當前工作路徑中調用這個函數,當前路徑可以通過之前學習的函數得到:

Python OS模塊簡介

輸出:

Python OS模塊簡介

備註:為方便起見,只截取輸出一部分。

從輸出中可以看到,文件夾的名稱以一個 / 結尾,文件夾中的文件向右縮進了四個空格。Data 文件夾中有一個名為 uscitiesv1.4.csv 的csv文件。這個文件包含了美國每個城市的人口數據。Population_Data 文件夾保存所有州的數據,其中包含從 uscitiesv1.4.csv 中提取的每個州的人口數據的獨立csv文件。

改變工作目錄

我們來改變工作目錄,進入到包含 「New York」州數據的目錄。

Python OS模塊簡介

現在,我們在這個目錄中再次運行 list_files 方法。

Python OS模塊簡介

輸出:

Python OS模塊簡介

如你所見,我們進入了 Population_Data 文件夾下的 New York 文件夾。

創建單個和嵌套目錄結構

現在,我們在這個目錄中創建一個名為 testdir 的新目錄。

Python OS模塊簡介

Python OS模塊簡介

輸出:

Python OS模塊簡介

如你所見,它在當前工作目錄中創建了一個新目錄。

我們來創建一個兩層嵌套的目錄。

Python OS模塊簡介

輸出:

Python OS模塊簡介

我們得到一個錯誤。具體來說,我們得到一個 FileNotFoundError 錯誤。你可能想知道,當我們試圖創建目錄時,為什麼會產生一個 FileNotFound 錯誤。

原因:Python模塊尋找一個名為 level1dir 的目錄來創建 level2dir 目錄。因為 level1dir 不存在,所以它首先拋出一個 FileNotFoundError錯誤。

對於這樣的目的,我們可以使用 mkdirs 函數來代替,它可以遞歸地創建多個目錄。

Python OS模塊簡介

查看當前目錄樹。

Python OS模塊簡介

輸出:

Python OS模塊簡介

可以看到,現在在 New York 文件夾下有兩個子目錄:testdir 和 level1dir。level1dir下面有一個名為level2dir 的目錄。

遞歸刪除單個和多層目錄

os 模塊也有修改或刪除目錄的方法,我將在這裡演示。

現在,讓我們來使用 rmdir 刪除剛才創建的目錄:

Python OS模塊簡介

查看當前目錄樹來確認此目錄已經不存在:

Python OS模塊簡介

輸出:

Python OS模塊簡介

你可以看到,testdir 目錄已經被刪除。

我們來嘗試刪除嵌套目錄樹 level1dir 和 level2dir。

Python OS模塊簡介

輸出:

Python OS模塊簡介

正如所見,這裡拋出了一個 OSError,這是正確的。它提示 level1dir 目錄不是空的。這是正確的,因為它下面有 level2dir。

使用 rmdir 方法不可能刪除非空目錄,類似於Unix命令行版本。

就像 makedirs 方法一樣,我們試一下 rmdirs,它可以遞歸地刪除樹結構中的目錄。

Python OS模塊簡介

我們再來看一下樹結構:

Python OS模塊簡介

輸出:

Python OS模塊簡介

它返回前一個目錄的狀態。

數據處理實例

到目前為止,我們已經研究了如何查看、創建和刪除嵌套目錄結構。現在我們來看一個 os 模塊如何幫助數據處理的例子。

為此,我們在目錄結構中向上一層。

Python OS模塊簡介

這一步操作之後,我們再來查看一下目錄樹結構。

Python OS模塊簡介

輸出:

Python OS模塊簡介

備註:為了簡便起見,只截取輸出一部分。

我們通過遍歷每個州的目錄併合並CSV文件來合併所有州的數據。

Python OS模塊簡介

由於 os 模塊的部分原因,我們能夠創建 merge_data,這是一個包含來自每個州的人口數據的數據幀。

結論

在本文中,我們簡要地探討了Python內置 os 模塊的不同功能。我們還看到了一個簡單的例子,說明如何在數據科學和分析領域中使用該模塊。很重要的一點是,要了解 os 還提供了很多的功能,並且可以根據開發人員的需要構建更複雜的邏輯。


英文原文:https://stackabuse.com/introduction-to-python-os-module/
譯者:憂鬱的紅秋褲

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Python部落 的精彩文章:

會Python和不會Python的區別
Django速查表

TAG:Python部落 |