在python中,我已经创建了一个函数来创建一个目录(如果该目录尚不存在).
def make_directory_if_not_exists(path):
try:
os.makedirs(path)
break
except OSError as exception:
if exception.errno != errno.EEXIST:
raise
Run Code Online (Sandbox Code Playgroud)
在Windows上,有时我会得到以下异常:
WindowsError: [Error 5] Access is denied: 'C:\\...\\my_path'
在Windows文件浏览器中打开目录时似乎会发生这种情况,但我无法可靠地重现它.所以我只是做了以下解决方法.
def make_directory_if_not_exists(path):
while not os.path.isdir(path):
try:
os.makedirs(path)
break
except OSError as exception:
if exception.errno != errno.EEXIST:
raise
except WindowsError:
print "got WindowsError"
pass
Run Code Online (Sandbox Code Playgroud)
这里发生了什么,即Windows什么时候出现mkdir这样的访问错误?有更好的解决方案吗?
您应该使用 OSError 和 IOError。看到这个答案,你会使用类似的东西:
def make_directory_if_not_exists(path):
try:
os.makedirs(path)
except (IOError, OSError) as exception:
if exception.errno != errno.EEXIST:
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10656 次 |
| 最近记录: |