最近在处理数据集,经常会使用shutil相关函数处理文件,今天专门观察了下copy(),copyfile() 和 copytree() 之间的差别。
shutil.copy()移动具体文件
source = r'D:datasetindoortrainairport_insideairport_inside_0001.jpg'
destination = r'D:datasetindoortest1'
shutil.copy(“source,destination)
source只能是文件,destination可以是文件,也可以是目录,目录必须已经创建,所以在复制文件前需要
if not os.path.exists(destination):
os.makedirs(destination)
shutil.copyfile()
移动具体文件
source = r'D:datasetindoortrainairport_insideairport_inside_0001.jpg'
destination = r'D:datasetindoortest1airport_inside_0001.jpg'
shutil.copyfile(source,destination)
source和destination都只能是文件
shutil.copytree()把某一文件夹(source)内所有文件复制到另外一个文件夹中(destination),
或者说移动的是文件夹和它的内容,目标路径相当于给文件夹重命名。
source = r'D:datasetindoortrainairport_inside'
destination = r'D:datasetindoortest1'
shutil.copytree(source,destination)
其中destination的路径已经创建,则会报错
FileExistsError: [WinError 183] 当文件已存在时,无法创建该文件



