当Python 2.7.10中存在同名文件时,os.makedirs会生成异常

时间:2016-12-20 11:41:24

标签: python darwin os.path

创建中间目录和叶子目录失败,如下面的示例条件(在MAC OS Darwin中)。 '/ tmp'目录中有一个'test'文件:

if os.path.isfile('/tmp/test'):
    if os.path.isdir('/tmp/test') is False:
        os.makedirs('/tmp/test')

Traceback (most recent call last):
File "/Library/Python/2.7/site-packages/IPython/core/interactiveshell.py", line 2881, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-45-71969e2d9a17>", line 3, in <module>
os.makedirs('/tmp/test')
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/os.py", line 157, in makedirs
mkdir(name, mode)
OSError: [Errno 17] File exists: '/tmp/test'

在这种情况下如何创建目录?

2 个答案:

答案 0 :(得分:0)

如果要创建临时目录,请使用tempfile.mkdtemp()

答案 1 :(得分:0)

正如Simon Walker所说,这不是Python中的错误或实现错误。操作系统(不仅是Darwin,而是其他操作系统,如Windows)不允许在目录中拥有文件和具有相同名称的目录。有关Unix / Linux的信息,请参阅explanation