中間ディレクトリとリーフ・ディレクトリの作成は、次の例の条件(MAC OS Darwin)のように失敗します。 '/ tmp'ディレクトリに 'test'ファイルがあります:os.makedirsは、Pythonで同じ名前のファイルが存在する場合に例外を生成します。2.7.10
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'
この場合、どのようにディレクトリを作成できますか?
この例では、ファイル '/ tmp/test'が存在するかどうかをチェックしています。残りのサンプルコードが実行されている場合は' True'を返す必要があります。次のチェックは、 '/ tmp/test'はディレクトリではなく、ファイルであることがわかっているので、パスします。次に、 'os.makedirs'はすでにファイルがあるディレクトリを作成しようとします。 Pythonでは、すでにファイルがあるディレクトリを作ることはできません –