織夢(mèng)做的網(wǎng)站首頁(yè)打不開(kāi)守游網(wǎng)絡(luò)推廣平臺(tái)
一.OS庫(kù)簡(jiǎn)介
OS是Operating System的簡(jiǎn)寫,即操作系統(tǒng)。
OS庫(kù)是一個(gè)操作系統(tǒng)接口模塊,提供一些方便使用操作系統(tǒng)相關(guān)功能的函數(shù)。
二.OS庫(kù)常用函數(shù)
2.1文件和目錄
2.1.1:os.getcwd()
作用:返回當(dāng)前工作目錄,結(jié)果是一個(gè)字符串。
print(f"當(dāng)前工作目錄為:{os.getcwd()}")
?結(jié)果:
2.1.2:os.mkdir(path)
作用:
創(chuàng)建一個(gè)路徑為path的目錄。
os.mkdir(f"{os.getcwd()}/zheshiyangyang")
結(jié)果:
?2.1.3:os.rmdir(path)
作用:
刪除路徑為path的目錄,若路徑不為空或者不存在,則會(huì)報(bào)錯(cuò)。
os.rmdir("666")
os.rmdir("鞠婧祎")
os.rmdir("zheshiyangyang")
效果:
2.1.4:os.chdir(path)
作用:
將工作目錄改為path路徑下。
tmp = os.getcwd()
os.chdir("E:/zheshiyangyang")
print(f"當(dāng)前工作目錄為:{os.getcwd()}")
os.chdir(tmp)
print(f"當(dāng)前工作目錄為:{os.getcwd()}")
效果:
?
2.1.5:os.listdir(path)
作用:
返回path路徑下所有文件和目錄名的任意順序排列的列表。
print(os.listdir(os.getcwd()))
效果:
2.2:os.path常見(jiàn)路徑操作
2.2.1:os.path.abspath(path)
作用:
返回path路徑的絕對(duì)路徑(標(biāo)準(zhǔn)化的),path不存在也不會(huì)報(bào)錯(cuò)。
print(os.path.abspath("main.py"))
效果:
2.2.2:os.path.basename(path)
作用:
返回路徑path的基本名稱(即路徑path的最末級(jí)文件)
print(os.path.basename("main.py"))
效果:
2.2.3:os.path.dirname(path)
作用:
返回路徑path的目錄名稱(即路徑path的最末級(jí)文件夾)
print(os.path.dirname(os.getcwd()))
?效果:
2.2.4:os.path.exists(path)
作用:
判斷path是否指向一個(gè)已存在的路徑,存在返回True,不存在返回False。
print(os.path.dirname(os.getcwd()+"/main.py")) #文件夾存在
print(os.path.dirname(os.getcwd()+"/666.py")) #文件不存在
效果:
2.2.5:os.path.isabs(path)
作用:
判斷path是否為一個(gè)絕對(duì)路徑,是返回True,不是返回False。
print(os.path.isabs(os.getcwd())) #是絕對(duì)路徑
print(os.path.isabs("main.py")) #不是絕對(duì)路徑
效果:
?2.2.6:os.path.isfile(path)
作用:
判斷path是否為一個(gè)已存在的文件,是則返回True,不是返回False。
print(os.path.isfile(os.getcwd())) #不是文件
print(os.path.isfile("main.py")) #是文件
效果:
2.2.7:os.path,isdir(path)
作用:
若path指向一個(gè)已存在文件夾的符號(hào)鏈接或者一個(gè)已存在文件夾路徑,返回True,否則返回False
print(os.path.isdir("鞠婧祎"))
效果:
2.2.8:os.path.normcase(path)
作用:
規(guī)范路徑名稱,在Windows操作系統(tǒng)上,將路徑名稱中的所有字符轉(zhuǎn)為小寫,將所有反斜杠轉(zhuǎn)為斜杠。在其它系統(tǒng)上,不做任何修改,返回原先的path。
print(os.path.normcase("C:/6ABS/ADAS4"))
效果:
2.2.9:os.path.split(path)
作用:
將路徑path拆分成(head,tail),其中head表示除去路徑最后一部分外的所有內(nèi)容,tail表示路徑最后一部分。
值得注意的是:
tail部分不會(huì)包含斜杠,如果path以斜杠結(jié)尾,tail將為空。
如果path中沒(méi)有斜杠,head將為空。
如果path為空,則head和tail均為空。
example1 = "/abc/def/haha.txt" #一般路徑
example2 = "/abc/def/" #以斜杠結(jié)尾的路徑
example3 = "main.py" #沒(méi)有斜杠的路徑
example4 = "" #空路徑
example5 = "/" #根目錄print("一般路徑head={},tail={}".format(*os.path.split(example1)))
print("以斜杠結(jié)尾的路徑head={},tail={}".format(*os.path.split(example2)))
print("沒(méi)有斜杠的路徑head={},tail={}".format(*os.path.split(example3)))
print("空路徑head={},tail={}".format(*os.path.split(example4)))
print("根目錄head={},tail={}".format(*os.path.split(example5)))
效果:
2.2.10:os.path.splitext(path)
作用:
將路徑path產(chǎn)分為(A,B),其中A+B == path,B為空或者英文句點(diǎn)開(kāi)頭(最多包含一個(gè)句點(diǎn)),且最多包含一個(gè)句點(diǎn)。路徑前的句點(diǎn)將被忽略。
簡(jiǎn)單來(lái)講,就是拿掉文件的后綴。
example1 = "/abs/cdf/" #文件夾路徑
example2 = "/abs/a.b.py" #包含多個(gè)句點(diǎn)的文件路徑
example3 = "/abc/66.py" #包含單個(gè)句點(diǎn)的文件路徑
example4 = ".exam" #以句點(diǎn)開(kāi)頭的路徑
print("文件夾路徑root={},ext={}".format(*os.path.splitext(example1)))
print("包含多個(gè)句點(diǎn)的文件路徑root={},ext={}".format(*os.path.splitext(example2)))
print("包含單個(gè)句點(diǎn)的文件路徑root={},ext={}".format(*os.path.splitext(example3)))
print("以句點(diǎn)開(kāi)頭的路徑root={},ext={}".format(*os.path.splitext(example4)))
效果:
2.2.11:os.path.join(path1,path2,path3,......)
作用:
將路徑拼接,具體規(guī)則如下:
1.如果不存在以“/”或者“/”開(kāi)始的參數(shù),函數(shù)會(huì)自動(dòng)加上“\”。
print(os.path.join("ab","cd","ef"))
2.如果存在“/”或者“\”開(kāi)頭的參數(shù),則從最后一個(gè)“/”或者“\”開(kāi)始拼接,之前的參數(shù)全部舍棄。
print(os.path.join("abc","/cd","ef")) #存在/
print(os.path.join("abc","\\6","ef")) #存在\
print(os.path.join("/abc","/cd","ef")) #存在多個(gè)/
?
ps:若是從“/”開(kāi)始,則“/”不會(huì)被替換為“\”?
3.如果存在“./”和“/”開(kāi)頭的參數(shù),則以“/”為標(biāo)準(zhǔn),忽略“./”。
print(os.path.join("abc","./sda","/cxz"))
輸出:/cxz?
?4.如果只存在“./”開(kāi)頭的參數(shù),則從“./”開(kāi)頭的參數(shù)的上一個(gè)參數(shù)開(kāi)始拼接。
print(os.path.join("abc","./efd","sad"))
?輸出:abc\./efd\sad