我正在尝试创建两个目录:foo1
和foo2
当前目录中没有名为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
?
答案 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'提议是在不停止处理的情况下通知问题的正确方法。