Python 2.6 文件存在 errno 17,
Python 2.6 File exists errno 17,
如果文件已经存在,我该如何消除错误 17 并发出警告消息?
import os, sys
# Path to be created
path = "/tmp/home/monthly/daily"
try:
os.makedirs(path)
except OSError as e:
if e.errno == 17:
//do something
os.makedirs( path, 0755 );
print "Path is created"
但是它仍然显示 ERRNO 17 消息。我能做什么?
第一次调用 os.makedirs
后,将创建目录。 (如果目录已经存在,则不做任何更改)
第二次调用总是会引发异常。
删除对 makedirs
:
的第二次调用
try:
os.makedirs(path, 0755)
except OSError as e:
if e.errno == 17: # errno.EEXIST
os.chmod(path, 0755)
# os.makedirs( path, 0755 ) <----
您可以创建一个变量来查看您是否创建了文件
像这样成功:
import os, sys
# Path to be created
path = "/tmp/home/monthly/daily"
created = False
is_error_17 = False
try:
os.makedirs(path)
created = True
except OSError as e:
if e.errno == 17:
print 'File has benn created before'
is_error_17 = True
pass
if created == True:
print 'created file successfully'
else:
print 'created file failed.'
if is_error_17 == True:
print 'you got error 17'
在您的代码中,如果第一次尝试捕获错误,则第二次 os.makedirs( path, 0755 );仍然会再次引发错误。
我认为可以如您所愿。当发生 OSError
错误时,它会检查错误代码并打印一条警告消息,如果它是您有兴趣处理的错误,否则它只会传播异常。请注意,使用可选的 mode 参数 os.makedirs()
会覆盖 0777
.
的默认值
import errno, os, sys
# Path to be created
path = "/tmp/home/monthly/daily"
try:
os.makedirs(path, 0755)
except OSError as e:
if e.error == errno.EEXIST: # file exists error?
print 'warning: {} exists'.format(path)
else:
raise # re-raise the exception
# make sure its mode is right
os.chmod(path, 0755)
print "Path existed or was created"
如果文件已经存在,我该如何消除错误 17 并发出警告消息?
import os, sys
# Path to be created
path = "/tmp/home/monthly/daily"
try:
os.makedirs(path)
except OSError as e:
if e.errno == 17:
//do something
os.makedirs( path, 0755 );
print "Path is created"
但是它仍然显示 ERRNO 17 消息。我能做什么?
第一次调用 os.makedirs
后,将创建目录。 (如果目录已经存在,则不做任何更改)
第二次调用总是会引发异常。
删除对 makedirs
:
try:
os.makedirs(path, 0755)
except OSError as e:
if e.errno == 17: # errno.EEXIST
os.chmod(path, 0755)
# os.makedirs( path, 0755 ) <----
您可以创建一个变量来查看您是否创建了文件 像这样成功:
import os, sys
# Path to be created
path = "/tmp/home/monthly/daily"
created = False
is_error_17 = False
try:
os.makedirs(path)
created = True
except OSError as e:
if e.errno == 17:
print 'File has benn created before'
is_error_17 = True
pass
if created == True:
print 'created file successfully'
else:
print 'created file failed.'
if is_error_17 == True:
print 'you got error 17'
在您的代码中,如果第一次尝试捕获错误,则第二次 os.makedirs( path, 0755 );仍然会再次引发错误。
我认为可以如您所愿。当发生 OSError
错误时,它会检查错误代码并打印一条警告消息,如果它是您有兴趣处理的错误,否则它只会传播异常。请注意,使用可选的 mode 参数 os.makedirs()
会覆盖 0777
.
import errno, os, sys
# Path to be created
path = "/tmp/home/monthly/daily"
try:
os.makedirs(path, 0755)
except OSError as e:
if e.error == errno.EEXIST: # file exists error?
print 'warning: {} exists'.format(path)
else:
raise # re-raise the exception
# make sure its mode is right
os.chmod(path, 0755)
print "Path existed or was created"