日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python mkdir -p_Python中的mkdir -p功能[复制]

發(fā)布時(shí)間:2025/3/15 python 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python mkdir -p_Python中的mkdir -p功能[复制] 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

正如其他解決方案中所提到的,我們希望能夠在模仿 mkdir -p 的行為時(shí)命中文件系統(tǒng)一次 . 我不認(rèn)為這是可能的,但我們應(yīng)該盡可能接近 .

代碼優(yōu)先,稍后說明:

import os

import errno

def mkdir_p(path):

""" 'mkdir -p' in Python """

try:

os.makedirs(path)

except OSError as exc: # Python >2.5

if exc.errno == errno.EEXIST and os.path.isdir(path):

pass

else:

raise

由于對(duì)@ tzot的回答的注釋表明在實(shí)際創(chuàng)建目錄之前檢查是否可以創(chuàng)建目錄存在問題:在此期間您無法判斷是否有人更改了文件系統(tǒng) . 這也符合Python要求寬恕的風(fēng)格,而不是許可 .

所以我們要做的第一件事就是嘗試制作目錄,然后如果出錯(cuò),找出原因 .

正如Jacob Gabrielson指出的那樣,我們必須尋找的一個(gè)案例是我們?cè)噲D放置目錄的文件已存在的情況 .

使用 mkdir -p :

$ touch /tmp/foo

$ mkdir -p /tmp/foo

mkdir: cannot create directory '/tmp/foo': File exists

Python中的類似行為是引發(fā)異常 .

因此,如果是這種情況,我們必須解決 . 不幸的是,我們做不到 . 我們從makedirs獲得相同的錯(cuò)誤消息,無論目錄是否存在(正常)還是存在防止創(chuàng)建目錄(壞)的文件 .

解決問題的唯一方法是再次檢查文件系統(tǒng)以查看是否有目錄 . 如果有,則以靜默方式返回,否則引發(fā)異常 .

唯一的問題是文件系統(tǒng)現(xiàn)在可能處于與調(diào)用makedirs時(shí)不同的狀態(tài) . 例如:存在導(dǎo)致makedirs失敗的文件,但現(xiàn)在有一個(gè)目錄 . 這并不重要,因?yàn)樵谧詈笠粋€(gè)文件系統(tǒng)調(diào)用目錄時(shí),該函數(shù)只會(huì)在不引發(fā)異常的情況下靜默退出 .

總結(jié)

以上是生活随笔為你收集整理的python mkdir -p_Python中的mkdir -p功能[复制]的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。