新聞中心
os模塊與目錄相關(guān)的函數(shù)

創(chuàng)新互聯(lián)從2013年創(chuàng)立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元武勝做網(wǎng)站,已為上家服務(wù),為武勝各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18980820575
與目錄相關(guān)的函數(shù)如下:
os.getcwd():獲取當(dāng)前目錄。
os.chdir(path):改變當(dāng)前目錄。
os.fchdir(fd):通過文件描述利改變當(dāng)前目錄。該函數(shù)與上一個(gè)函數(shù)的功能基本相似,只是該函數(shù)以文件描述符作為參數(shù)來代表目錄。
下面程序測(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() 來獲取當(dāng)前目錄,也示范了使用 chdir() 來改變當(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 代表所有者可讀/可寫/可執(zhí)行、組用戶可讀/可寫/可執(zhí)行、其他用戶可讀/可寫/可執(zhí)行。
os.makedirs(path[, mode]):其作用類似于 mkdir(),但該函數(shù)的功能更加強(qiáng)大,它可以邊歸創(chuàng)建目錄。比如要?jiǎng)?chuàng)建 abc/xyz/wawa 目錄,如果在當(dāng)前目錄下沒有 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):邊歸刪除目錄。其功能類似于 rmdir(),但該函數(shù)可以遞歸刪除 abc/xyz/wawa 目錄,它會(huì)從 wawa 子目錄開始刪除,然后刪除 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)行遞歸重命名。其功能類似于 rename(),但該函數(shù)可以遞歸重命名 abc/xyz/wawa 目錄,它會(huì)從 wawa 子目錄開始重命名,然后重命名 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:判斷是否可寫。
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
網(wǎng)頁標(biāo)題:創(chuàng)新互聯(lián)Python教程:Pythonos模塊詳解
網(wǎng)站URL:http://www.dlmjj.cn/article/dhiespj.html


咨詢
建站咨詢
