Python部落(python.freelycode.com)組織翻譯,禁止轉載,歡迎轉發。
引言
眾所周知,python是一種強大的腳本語言,那麼,問題來了,為什麼不用python來編寫Linux腳本呢?問題的答案就是python有os 模塊啊!這個os模塊能夠讓你像在Linux命令行中操作文件一樣,在python中也實現同樣的功能,感覺它就是python天生用來替換BASH的,而且它能夠呈現出一種更簡潔友好的腳本體驗!
第一步;載入os模塊
要想使用os模塊的功能,第一步該怎麼做呢?當然是首先載入os模塊了,就像在python中使用其它模塊一樣,你只需輸入以下語句就可完成os模塊的導入。
好了,導入os模塊之後,就可以體驗不一樣的Linux文件操作命令了!接下來,將會介紹一些os模塊下與Linux文件操作命令相對應的函數語句。
getcwd
這條語句以字符串的形式返回當前的工作目錄,不必向它傳遞任何參數,相當於Linux下的pwd命令。
chdir
chdir語句和Linux下的cd命令一樣用來切換工作目錄,調用這個函數時,只要將你想改變的文件路徑以字符串的形式作為變量輸入即可。
而且它也像cd命令一樣,支持相對路徑。具體看下面的操作;
listdir
Lisdir相當於運行ls命令,然而不一樣的是,lisdir並不打印出目錄下的內容,只是將其作為一個列表返回。當然,你也可以指定特定的目錄,否則的話,它將會列出當前的目錄。
mkdir and makedirs
這兩個函數和Linux下創建目錄的命令一樣,它們接受的第一個參數都是創建的目錄,當然是以字符串的形式,此外,還可以指定第二個參數來給創建的目錄賦予給定的權限。
與mkdir不一樣的是,makedirs支持創建多層目錄,相當於運行mkdir多次
chmod
chmod用來改變目錄的權限,輸入的第一個參數是要改變的目錄,第二個是要改變的權限代號
chown
chown用來改變文件的所有者,不過它要求用戶和群組的名稱都是有效的,例如
這個命令將"test"目錄的用戶和群組屬性都改為ID號為1000的所有者
remove and removedirs
remove用來刪除單個文件,可以為它傳遞一個絕對路徑。
刪除目錄用removedirs,它可以刪除指定目錄下的所有內容。
system
最後介紹的這個命令功能最強大,同時也是最危險的一個。它可以運行Linux系統下的所有命令,只要將命令當做參數傳遞給它即可。
不過,這裡有幾點需要注意下,第一,使用這個函數必須在python的終端下,而且,這個函數會佔用較多的系統資源,通常是低效的。最重要的是,這個函數可以運行任何命令,意味著它也能夠產生任何你想不到的破壞。所以,如果你打算使用這個函數,請謹慎對待並確保它在可控範圍內。
現在,使用下面的命令來嘗試下system吧!
當然,你也可以在其中使用管道符命令嘍
運行上面的命令,將會使火狐瀏覽器運行,命令行上將會打出它的進程信息。
總結
現在,你已經使用python向Linux系統邁出了第一步。此外,python還提供了許多其它方便的工具,而這些東西本來是非常複雜的,由於python使它們變得更加好用。例如,比較流行的自動化工具ANsible和Salt就是用python 做的。總而言之,沒有什麼是python不能做的,所以,趕緊GET起來吧!
最後來點小練習:
用Python打印出你當前的工作目錄
改變並打印出一個工作目錄
創建一個循環,遍歷目錄的內容並單獨打印。
只用一個命令創建一個嵌套目錄
改變一個文件夾的權限,使目錄擁有者能夠讀取,寫入和運行,而其他人只有讀取和運行的權限
刪除兩個子目錄
使用Python創建一個文本文件,列出用戶當前正在運行的所有進程
英文原文:https://linuxconfig.org/python-os-module
譯者:Mr Chen