【Python】将文件复制到另一个文件夹,将文件夹复制到新的位置

Package:shutil

方法:

shutil.copy()

copy() 方法的功能类似于 Unix 中的“cp”命令。这意味着如果目标是一个文件夹,那么它将在其中创建一个与源文件具有相同名称(基本名称)的新文件。此外,该方法会在复制源文件的内容后同步目标文件权限到源文件。

shutil.copyfile():

它将源内容复制到目标文件中。

如果目标文件不可写入,那么复制操作将导致 IOError 异常。

如果源文件和目标文件都相同,它将会返回 SameFileError。

但是,如果目标文件之前有不同的名称,那么该副本将会覆盖其内容。

如果目标是一个目录,这意味着此方法不会复制到目录,那么会发生 Error 13。

 

copy() vs copyfile() :

copy() 还可以在复制内容时设置权限位,而 copyfile() 只复制数据。

如果目标是目录,则 copy() 将复制文件,而 copyfile() 会失败,出现 Error 13。

 

--------------------------------------------------------------7.11更新-------------------------------------------------------------------------------------

今天用到了对文件夹进行复制/移动的操作,在这里使用的事copytree()函数。

具体代码如下:

def copy_file_to_species(dataset_dir, sub_class_dir, sub_dir):
    class_dir = os.path.join(dataset_dir, sub_class_dir)
    little_sample = get_little_sample(class_dir)
    for directory in os.listdir(class_dir):
        if directory in little_sample:
            print(directory)
            files = os.path.join(class_dir, directory)
            print(files)
            little_sample_file = os.path.join(dataset_dir, sub_dir, directory)
            #print(little_sample_file)
            #copytree会自动创建新目录

            shutil.copytree(files, little_sample_file)

            #shutil.copy(img_file, genus_file)

复制的语句为: 

 shutil.copytree(files, little_sample_file)

  •  files为原文件夹,即需要复制的文件夹
  • little_sample_file为新文件夹,该文件夹下存的就是复制过来的文件

原始文件夹:D:\CC\**\数据2015\**********\train_data\3500

目标文件夹:D:\CC\**\数据2015\**********\sample_data\3500

 我只是将train_data下面的文件 夹移动到了sample_data下。

 

 

 

https://cloud.tencent.com/developer/news/183282

你可能感兴趣的:(python基础)