即使目录不存在,mkdir中的FileExistsError和Python中的makedirs也是如此

时间:2016-05-22 10:28:08

标签: python directory

我正在尝试创建两个目录:foo1foo2 当前目录中没有名为foo1的内容,但有一个名为 foo2的文件。

结果如下:

user@workstation:~/Desktop/newfolder$ ls
foo2
user@workstation:~/Desktop/newfolder$ file foo2
foo2: ASCII text
-----
>>> os.mkdir('foo1')
>>> os.mkdir('foo2')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
FileExistsError: [Errno 17] File exists: 'foo2'
>>> os.makedirs('foo2')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/janreggie/anaconda3/lib/python3.5/os.py", line 241, in makedirs
    mkdir(name, mode)
FileExistsError: [Errno 17] File exists: 'foo2'

现在有没有办法在文件foo2时创建目录foo2

2 个答案:

答案 0 :(得分:0)

将其包裹在try / except

def my_mkdir(dir):
    try:
        os.mkdir(dir)
    except:
        pass

然后使用my_mkdir('foo1')my_mkdir('foo2')

答案 1 :(得分:0)

嗯,这不是Python问题。这是操作系统约束。你在使用Windows吗?正如piRSquared之前所说,在同一目录中不能有两个具有相同名称的实体。一旦操作系统在文件和目录之间产生差异,它将允许Python创建一个与任何现有文件同名的子目录。此外,来自piRSquared的'try-except'提议是在不停止处理的情况下通知问题的正确方法。