python中的os.mkdir和os.makedirs的使用區(qū)別及如何查看某個(gè)模塊中的某些字母開頭的屬性方法

  • A+
所屬分類:百科知識

這篇文章主要介紹了python中的os.mkdir和os.makedirs的使用區(qū)別及如何查看某個(gè)模塊中的某些字母開頭的屬性方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

python中的os.mkdir和os.makedirs的使用區(qū)別以及如何查看某個(gè)模塊中的某些字母開頭的屬性方法

1 os.mkdir的使用

  • os.mkdir(dir_name):用于新建文件夾,當(dāng)要新建的文件夾已經(jīng)存在的時(shí)候,就會報(bào)錯(cuò):FileExistsError: [Errno 17] File exists:

因此,我們一般在新建一個(gè)文件夾的時(shí)候,會和os.path.exists()集合使用,如下:

1、判斷一個(gè)文件夾是否存在,如果不存在就新建它,如果已經(jīng)存在就跳過:

1
2
3
dir_name = "./images"
if not os.path.exists(dir_name):
????os.mkdir(dir_name)

2 os.makedirs的使用

os.makedirs(dir_name2, exist_ok=True):功能和os.mkdir一樣也是用于新建文件夾,但是使用起來更方便,功能也更多一點(diǎn)

  • os.makedirs:可以遞歸的創(chuàng)建多個(gè)文件夾
  • os.makedirs:的exist_ok參數(shù)設(shè)置為True時(shí),可以自動判斷當(dāng)文件夾已經(jīng)存在就不創(chuàng)建

如下,是遞歸的新建目錄:images/imgs2

1
2
dir_name2 = "./images2/imgs2"
os.makedirs(dir_name2, exist_ok=True)

3 查看某個(gè)模塊中的某些字母開頭的屬性方法

  • 利用dir(module_name)先查看模塊的所有方法和屬性
  • 結(jié)合列表生成式和if語句判斷某個(gè)字母開頭的方法和屬性

例如,下面是查看opencv模塊中的所有顏色空間轉(zhuǎn)換的屬性

1
2
3
4
import cv2
cvtCOLORS = [color for color in dir(cv2) if color.startswith("COLOR_")]
print(cvtCOLORS)

打印出opencv中的所有顏色空間相關(guān)的屬性。

補(bǔ)充:Python中os.mkdir()與os.makedirs()的區(qū)別及用法

os.makedir(path)和os.makedirs(path) 今天工作中將hadoop文件同步到服務(wù)器磁盤,由于文件類別目錄較多,遷移文件時(shí)需要判斷是否存在 這里有兩個(gè)方法os.mkdir(path)和os.makedirs(path)

首先說os.mkdir(path),他的功能是一級一級的創(chuàng)建目錄,前提是前面的目錄已存在,如果不存在會報(bào)異常,比較麻煩,但是存在即有他的道理,當(dāng)你的目錄是根據(jù)文件名動態(tài)創(chuàng)建的時(shí)候,你會發(fā)現(xiàn)他雖然繁瑣但是很有保障,不會因?yàn)槟愕囊粫r(shí)手抖,創(chuàng)建而創(chuàng)建了雙層或者多層錯(cuò)誤路徑,

1
2
3
4
5
6
7
import os
?
os.mkdir('d:\hello')??? #? 正常
os.mkdir('d:\hello\hi') #? 正常
?
#? 如果d:\hello目錄不存在
#? 則os.mkdir('d:\hello\hi')執(zhí)行失敗

然后是os.makedirs(path),單從寫法上就能猜出他的區(qū)別,他可以一次創(chuàng)建多級目錄,哪怕中間目錄不存在也能正常的(替你)創(chuàng)建,想想都可怕,萬一你中間目錄寫錯(cuò)一個(gè)單詞.........

1
2
3
4
5
6
7
import os
?
os.makedirs('d:\hello')??? #? 正常
os.makedirs('d:\hello\hi') #? 正常
?
#? 如果d:\hello目錄不存在
#? 則os.makedirs('d:\hello\hi')? #? 仍然正常

各有優(yōu)缺點(diǎn),根據(jù)自己需要選擇使用

到此這篇關(guān)于python中的os.mkdir和os.makedirs的使用區(qū)別及如何查看某個(gè)模塊中的某些字母開頭的屬性方法的文章就介紹到這了

推薦應(yīng)用

發(fā)表評論

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: