Python 3.x 尝试使用makedirs python 3复制文件时出现FileExistError

Python 3.x 尝试使用makedirs python 3复制文件时出现FileExistError,python-3.x,mkdir,Python 3.x,Mkdir,所以我正在运行这段代码,它从一个文件夹中获取文件,并将它们复制到另一个目录中。然而,当我尝试创建新的目录树时,即使我没有在代码中的任何其他地方创建该目录树,我也会得到一个FileExistError。有什么不对劲 import os import shutil import datetime class CopyFilesModuleTest: def __init__(self): self.folderName = "" self.timeName

所以我正在运行这段代码,它从一个文件夹中获取文件,并将它们复制到另一个目录中。然而,当我尝试创建新的目录树时,即使我没有在代码中的任何其他地方创建该目录树,我也会得到一个FileExistError。有什么不对劲

import os
import shutil
import datetime

class CopyFilesModuleTest:

    def __init__(self):
        self.folderName = ""
        self.timeName = CopyFilesModuleTest.formatTimeStr(datetime.datetime.now())

    def getDirFiles(self):
        src_files = os.listdir(self.folderName)
        return src_files

    def copyFiles(self,src_files):
        for file_name in src_files:
            full_file_name = self.folderName+"/"+file_name
            if(os.path.isfile(full_file_name)):
                destPath = self.getNewFileDest(file_name)
                destDir = self.getNewFileDir()
                self.createDirectory(destDir)
                shutil.copy(full_file_name,destPath)

    def getNewFileDest(self,fileName):
        mainFold = "userDataBackUp"
        full_File_Path = mainFold+"/"+self.timeName+"/"+self.folderName+"/"+fileName
        return full_File_Path

    def getNewFileDir(self):
        mainFold = "userDataBackUp"
        full_File_Dir = mainFold+"/"+self.timeName+"/"+self.folderName
        return full_File_Dir

    @staticmethod
    def formatTimeStr(tStr):
        tStr = str(tStr)
        colon = ":"
        space = " "
        dot = "."
        bLine = "-"
        tStr = tStr.replace(colon,"_")
        tStr = tStr.replace(space,"_")
        tStr = tStr.replace(dot,"_")
        tStr = tStr.replace(bLine,"_")
        return tStr

    def createDirectory(self,filePath):
        os.makedirs(filePath)

    def copyAllFromFolder(self,fName):
        self.folderName = fName
        src_files1 = cfm1.getDirFiles()
        cfm1.copyFiles(src_files1)



cfm1 = CopyFilesModuleTest()
cfm1.copyAllFromFolder("folder_files")

该目录可能已经存在。在本例中,os.makedirs将引发一个FileExistError,我的python 3.5解释器就是这样做的;3.6文档表示它将引发操作错误。这应该是关键:

os.makedirs(filePath, exist_ok=True)

正如。

的文档中所述,是的,事实上,我犯了一个愚蠢的错误,我为每个文件运行for循环,所以我尝试为每个文件再次创建目录。。。