您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)Python os模塊是什么,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。
os模塊與目錄相關(guān)的函數(shù)
與目錄相關(guān)的函數(shù)如下:
os.getcwd():獲取當(dāng)前目錄。
os.chdir(path):改變當(dāng)前目錄。
os.fchdir(fd):通過(guò)文件描述利改變當(dāng)前目錄。該函數(shù)與上一個(gè)函數(shù)的功能基本相似,只是該函數(shù)以文件描述符作為參數(shù)來(lái)代表目錄。
下面程序測(cè)試了與目錄相關(guān)的函數(shù)的用法:
import os # 獲取當(dāng)前目錄 print(os.getcwd()) # G:\publish\codes\12.7 # 改變當(dāng)前目錄 os.chdir('../12.6') # 再次獲取當(dāng)前目錄 print(os.getcwd()) # G:\publish\codes\12.6
上面程序示范了使用 getcwd() 來(lái)獲取當(dāng)前目錄,也示范了使用 chdir() 來(lái)改變當(dāng)前目錄。
os.chroot(path):改變當(dāng)前進(jìn)程的根目錄。
os.listdir(path):返回 path 對(duì)應(yīng)目錄下的所有文件和子目錄。
os.mkdir(path[, mode]):創(chuàng)建 path 對(duì)應(yīng)的目錄,其中 mode 用于指定該目錄的權(quán)限。該 mode參數(shù)代表一個(gè) UNIX 風(fēng)格的權(quán)限,比如 0o777 代表所有者可讀/可寫(xiě)/可執(zhí)行、組用戶(hù)可讀/可寫(xiě)/可執(zhí)行、其他用戶(hù)可讀/可寫(xiě)/可執(zhí)行。
os.makedirs(path[, mode]):其作用類(lèi)似于 mkdir(),但該函數(shù)的功能更加強(qiáng)大,它可以邊歸創(chuàng)建目錄。比如要?jiǎng)?chuàng)建 abc/xyz/wawa 目錄,如果在當(dāng)前目錄下沒(méi)有 abc 目錄,那么使用 mkdir() 函數(shù)就會(huì)報(bào)錯(cuò),而使用 makedirs() 函數(shù)則會(huì)先創(chuàng)建 abc,然后在其中創(chuàng)建 xyz 子目錄,最后在 xyz 子目錄下創(chuàng)建 wawa 子目錄。
如下程序示范了如何創(chuàng)建目錄:
import os path = 'my_dir' # 直接在當(dāng)前目錄下創(chuàng)建目錄 os.mkdir(path, 0o755) path = "abc/xyz/wawa" # 遞歸創(chuàng)建目錄 os.makedirs(path, 0o755)
正如從上面代碼所看到的,直接在當(dāng)前目錄下創(chuàng)建 mydir 子目錄,因此可以使用 mkdir() 函數(shù)創(chuàng)建;需要程序遞歸創(chuàng)建 abc/xyz/wawa 目錄,因此使用 makedirs() 函數(shù)。os.rmdir(path):刪除 path 對(duì)應(yīng)的空目錄。如果目錄非空,則拋出一個(gè) OSError 異常。程序可以先用 os.remove() 函數(shù)刪除文件。os.removedirs(path):邊歸刪除目錄。其功能類(lèi)似于 rmdir(),但該函數(shù)可以遞歸刪除 abc/xyz/wawa 目錄,它會(huì)從 wawa 子目錄開(kāi)始刪除,然后刪除 xyz 子目錄,最后刪除 abc 目錄。
如下程序示范了如何刪除目錄:
import os path = 'my_dir' # 直接刪除當(dāng)前目錄下的子目錄 os.rmdir(path) path = "abc/xyz/wawa" # 遞歸刪除子目錄 os.removedirs(path)
上面程序中第 5 行代碼使用 rmdir() 函數(shù)刪除當(dāng)前目錄下的 my_dir 子目錄,該函數(shù)不會(huì)執(zhí)行遞歸刪除;第 8 行代碼使用 removedirs() 函數(shù)刪除 abc/xyz/wawa 目錄,該函數(shù)會(huì)執(zhí)行遞歸刪除,它會(huì)先刪除 wawa 子目錄,然后刪除 xyz 子目錄,最后才刪除 abc 目錄。
os.rename(src, dst):重命名文件或目錄,將 src 重名為 dst。
os.renames(old, new):對(duì)文件或目錄進(jìn)行遞歸重命名。其功能類(lèi)似于 rename(),但該函數(shù)可以遞歸重命名 abc/xyz/wawa 目錄,它會(huì)從 wawa 子目錄開(kāi)始重命名,然后重命名 xyz 子目錄,最后重命名 abc 目錄。
如下程序示范了如何重命名目錄:
import os path = 'my_dir' # 直接重命名當(dāng)前目錄下的子目錄 os.rename(path, 'your_dir') path = "abc/xyz/wawa" # 遞歸重命名子目錄 os.renames(path, 'foo/bar/haha')
上面程序中第 5 行代碼直接重命名當(dāng)前目錄下的 my_dir 子目錄,程序會(huì)將該子目錄重命名為 your_dir;第 8 行代碼則執(zhí)行遞歸重命名,程序會(huì)將 wawa 重命名為 haba,將 xyz 重命名為 bar,將 abc 重命名為 foo。
os模塊與權(quán)限相關(guān)的函數(shù)
與權(quán)限相關(guān)的函數(shù)如下:
os.access(path, mode):檢查 path 對(duì)應(yīng)的文件或目錄是否具有指定權(quán)限。該函數(shù)的第二個(gè)參數(shù)可能是以下四個(gè)狀態(tài)值的一個(gè)或多個(gè)值:
os.F_OK:判斷是否存在。
os.R_OK:判斷是否可讀。
os.W_OK:判斷是否可寫(xiě)。
os.X_OK:判斷是否可執(zhí)行。
例如如下程序:
import os # 判斷當(dāng)前目錄的權(quán)限 ret = os.access('.', os.F_OK|os.R_OK|os.W_OK|os.X_OK) print("os.F_OK|os.R_OK|os.W_OK|os.X_OK - 返回值:", ret) # 判斷os.access_test.py文件的權(quán)限 ret = os.access('os.access_test.py', os.F_OK|os.R_OK|os.W_OK) print("os.F_OK|os.R_OK|os.W_OK - 返回值:", ret)
上面程序判斷當(dāng)前目錄的權(quán)限和當(dāng)前文件的權(quán)限,這里特意將此文件設(shè)為只讀的。運(yùn)行該程序,可以看到如下輸出結(jié)果:
os.F_OK|os.R_OK|os.W_OK|os.X_OK - 返回值:True os.F_OK|os.R_OK|os.W_OK - 返回值:False
關(guān)于Python os模塊是什么就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。