Python os.mkdir()與os.makedirs()的使用區(qū)別
今天工作中將hadoop文件同步到服務(wù)器磁盤,由于文件類別目錄較多,遷移文件時(shí)需要判斷是否存在
這里有兩個(gè)方法os.mkdir(path)和os.makedirs(path)
os.mkdir(path)他的功能是一級(jí)一級(jí)的創(chuàng)建目錄,前提是前面的目錄已存在,如果不存在會(huì)報(bào)異常,比較麻煩,但是存在即有他的道理,當(dāng)你的目錄是根據(jù)文件名動(dòng)態(tài)創(chuàng)建的時(shí)候,你會(huì)發(fā)現(xiàn)他雖然繁瑣但是很有保障,不會(huì)因?yàn)槟愕囊粫r(shí)手抖,創(chuàng)建而創(chuàng)建了雙層或者多層錯(cuò)誤路徑,
import os os.mkdir(’d:hello’) # 正常os.mkdir(’d:hellohi’) # 正常 # 如果d:hello目錄不存在# 則os.mkdir(’d:hellohi’)執(zhí)行失敗os.makedirs(path)
單從寫法上就能猜出他的區(qū)別,他可以一次創(chuàng)建多級(jí)目錄,哪怕中間目錄不存在也能正常的(替你)創(chuàng)建,想想都可怕,萬(wàn)一你中間目錄寫錯(cuò)一個(gè)單詞.........
import os os.makedirs(’d:hello’) # 正常os.makedirs(’d:hellohi’) # 正常 # 如果d:hello目錄不存在# 則os.makedirs(’d:hellohi’) # 仍然正常
各有優(yōu)缺點(diǎn),根據(jù)自己需要選擇使用。
補(bǔ)充:Python中os.path和os.makedirs的運(yùn)用(判斷文件或文件夾是否存在,創(chuàng)建文件夾)
import osimport numpy as npdata = np.array([1, 2, 3])if not os.path.exists('./data/'): print('# path not exists') os.makedirs('./data/') if not os.path.exists('./data/data.npy'): print('# data.npy not exists') np.save('./data/data.npy', data) print('# path exists? :', os.path.exists('./data/'))print('# data.npy exists? :', os.path.exists('./data/data.npy'))
運(yùn)行結(jié)果:
# path not exists# data.npy not exists# path exists? : True# data.npy exists? : True
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章:
1. 原生js實(shí)現(xiàn)的觀察者和訂閱者模式簡(jiǎn)單示例2. asp讀取xml文件和記數(shù)3. JS錯(cuò)誤處理與調(diào)試操作實(shí)例分析4. python基于scrapy爬取京東筆記本電腦數(shù)據(jù)并進(jìn)行簡(jiǎn)單處理和分析5. JS實(shí)現(xiàn)表單中點(diǎn)擊小眼睛顯示隱藏密碼框中的密碼6. 在終端啟動(dòng)Python時(shí)報(bào)錯(cuò)的解決方案7. Python如何實(shí)現(xiàn)感知器的邏輯電路8. springboot基于Redis發(fā)布訂閱集群下WebSocket的解決方案9. vue 驗(yàn)證兩次輸入的密碼是否一致的方法示例10. 基于android studio的layout的xml文件的創(chuàng)建方式
