How to overwrite a folder if it already exists when creating it with makedirs?

前端 未结 6 467
没有蜡笔的小新
没有蜡笔的小新 2020-12-23 16:20

The following code allows me to create a directory if it does not already exist.

dir = \'path_to_my_folder\'
if not os.path.exists(dir):
    os.makedirs(dir)         


        
相关标签:
6条回答
  • 2020-12-23 16:54

    Just say

    dir = 'path_to_my_folder'
    if not os.path.exists(dir): # if the directory does not exist
        os.makedirs(dir) # make the directory
    else: # the directory exists
        #removes all files in a folder
        for the_file in os.listdir(dir):
            file_path = os.path.join(dir, the_file)
            try:
                if os.path.isfile(file_path):
                    os.unlink(file_path) # unlink (delete) the file
            except Exception, e:
                print e
    
    0 讨论(0)
  • 2020-12-23 16:55
    import os
    import shutil
    
    dir = 'path_to_my_folder'
    if os.path.exists(dir):
        shutil.rmtree(dir)
    os.makedirs(dir)
    
    0 讨论(0)
  • 2020-12-23 16:56

    os.path.exists(dir) check is recommended but can be avoided by using ignore_errors

    dir = 'path_to_my_folder'
    shutil.rmtree(dir, ignore_errors=True)
    os.makedirs(dir)
    
    0 讨论(0)
  • 2020-12-23 17:08

    Here's a EAFP (Easier to Ask for Forgiveness than Permission) version:

    import errno
    import os
    from shutil import rmtree
    from uuid import uuid4
    
    path = 'path_to_my_folder'
    temp_path = os.path.dirname(path)+'/'+str(uuid4())
    try:
        os.renames(path, temp_path)
    except OSError as exception:
        if exception.errno != errno.ENOENT:
            raise
    else:
        rmtree(temp_path)
    os.mkdir(path)
    
    0 讨论(0)
  • 2020-12-23 17:10
    import os
    import shutil
    
    path = 'path_to_my_folder'
    if not os.path.exists(path):
        os.makedirs(path)
    else:
        shutil.rmtree(path)           # Removes all the subdirectories!
        os.makedirs(path)
    

    How about that? Take a look at shutil's Python library!

    0 讨论(0)
  • 2020-12-23 17:16
    try:
        os.mkdir(path)
    except FileExistsError:
        pass
    
    0 讨论(0)
提交回复
热议问题