Python之os模塊

編程語言 Python Linux 腳本語言 Python部落 2017-05-16
Python之os模塊

Python部落(python.freelycode.com)組織翻譯,禁止轉載,歡迎轉發。

引言

眾所周知,python是一種強大的腳本語言,那麼,問題來了,為什麼不用python來編寫Linux腳本呢?問題的答案就是python有os 模塊啊!這個os模塊能夠讓你像在Linux命令行中操作文件一樣,在python中也實現同樣的功能,感覺它就是python天生用來替換BASH的,而且它能夠呈現出一種更簡潔友好的腳本體驗!

第一步;載入os模塊

要想使用os模塊的功能,第一步該怎麼做呢?當然是首先載入os模塊了,就像在python中使用其它模塊一樣,你只需輸入以下語句就可完成os模塊的導入。

Python之os模塊

好了,導入os模塊之後,就可以體驗不一樣的Linux文件操作命令了!接下來,將會介紹一些os模塊下與Linux文件操作命令相對應的函數語句。

getcwd

這條語句以字符串的形式返回當前的工作目錄,不必向它傳遞任何參數,相當於Linux下的pwd命令。

Python之os模塊

chdir

chdir語句和Linux下的cd命令一樣用來切換工作目錄,調用這個函數時,只要將你想改變的文件路徑以字符串的形式作為變量輸入即可。

Python之os模塊

而且它也像cd命令一樣,支持相對路徑。具體看下面的操作;

Python之os模塊

listdir

Lisdir相當於運行ls命令,然而不一樣的是,lisdir並不打印出目錄下的內容,只是將其作為一個列表返回。當然,你也可以指定特定的目錄,否則的話,它將會列出當前的目錄。

Python之os模塊

mkdir and makedirs

這兩個函數和Linux下創建目錄的命令一樣,它們接受的第一個參數都是創建的目錄,當然是以字符串的形式,此外,還可以指定第二個參數來給創建的目錄賦予給定的權限。

Python之os模塊

與mkdir不一樣的是,makedirs支持創建多層目錄,相當於運行mkdir多次

Python之os模塊

chmod

chmod用來改變目錄的權限,輸入的第一個參數是要改變的目錄,第二個是要改變的權限代號

Python之os模塊

chown

chown用來改變文件的所有者,不過它要求用戶和群組的名稱都是有效的,例如

Python之os模塊

這個命令將"test"目錄的用戶和群組屬性都改為ID號為1000的所有者

remove and removedirs

remove用來刪除單個文件,可以為它傳遞一個絕對路徑。

Python之os模塊

刪除目錄用removedirs,它可以刪除指定目錄下的所有內容。

Python之os模塊

system

最後介紹的這個命令功能最強大,同時也是最危險的一個。它可以運行Linux系統下的所有命令,只要將命令當做參數傳遞給它即可。

不過,這裡有幾點需要注意下,第一,使用這個函數必須在python的終端下,而且,這個函數會佔用較多的系統資源,通常是低效的。最重要的是,這個函數可以運行任何命令,意味著它也能夠產生任何你想不到的破壞。所以,如果你打算使用這個函數,請謹慎對待並確保它在可控範圍內。

現在,使用下面的命令來嘗試下system吧!

Python之os模塊

當然,你也可以在其中使用管道符命令嘍

Python之os模塊

運行上面的命令,將會使火狐瀏覽器運行,命令行上將會打出它的進程信息。

總結

現在,你已經使用python向Linux系統邁出了第一步。此外,python還提供了許多其它方便的工具,而這些東西本來是非常複雜的,由於python使它們變得更加好用。例如,比較流行的自動化工具ANsible和Salt就是用python 做的。總而言之,沒有什麼是python不能做的,所以,趕緊GET起來吧!

最後來點小練習:

  1. 用Python打印出你當前的工作目錄

  2. 改變並打印出一個工作目錄

  3. 創建一個循環,遍歷目錄的內容並單獨打印。

  4. 只用一個命令創建一個嵌套目錄

  5. 改變一個文件夾的權限,使目錄擁有者能夠讀取,寫入和運行,而其他人只有讀取和運行的權限

  6. 刪除兩個子目錄

  7. 使用Python創建一個文本文件,列出用戶當前正在運行的所有進程

英文原文:https://linuxconfig.org/python-os-module
譯者:Mr Chen

相關推薦

推薦中...