What is different between makedirs and mkdir of os?

后端 未结 2 1118
挽巷
挽巷 2020-12-28 11:17

I am confused to use about these two osmethods to create the new directory.

Please give me some example in Python.

相关标签:
2条回答
  • 2020-12-28 11:56

    (Can not comment, just add to NPE's answer.)

    In Python3, os.makedirs has a default parameter exist_ok=False.
    If you set it to True, then os.makedirs will not throw any exception if the leaf exists.
    (While os.mkdir doesn't have this parameter.)

    Just like this:

    os.makedirs('dirA', exist_ok=True)

    P.S.
    You can type ? before the name of a method in IPython shell to take a quick look at the documentation.
    e.g.:

    >>> import os
    >>> ? os.makedirs
    
    0 讨论(0)
  • 2020-12-28 12:19

    makedirs() creates all the intermediate directories if they don't exist (just like mkdir -p in bash).

    mkdir() can create a single sub-directory, and will throw an exception if intermediate directories that don't exist are specified.

    Either can be used to create a single 'leaf' directory (dirA):

    • os.mkdir('dirA')
    • os.makedirs('dirA')

    But makedirs must be used to create 'branches':

    • os.makedirs('dirA/dirB') will work [the entire structure is created]

    mkdir can work here if dirA already exists, but if it doesn't an error will be thrown.

    Note that unlike mkdir -p in bash, either will fail if the leaf already exists.

    0 讨论(0)
提交回复
热议问题