用python把一批文件复制到另一个文件夹中

# 日期:  2023/5/4 11:23
import shutil
import os

# 源文件夹路径
src_folder = 'VOCdevkit/VOC2007/JPEGImages'

# 目标文件夹路径
dst_folder = 'img/0504_test_sets'

# 获取源文件夹中的所有文件
files = os.listdir(src_folder)

lst = []
with open("VOCdevkit/VOC2007/ImageSets/Main/test.txt", "r") as file:
    for line in file:
        img_name = line.strip() + ".jpg"
        lst.append(img_name)

# 遍历文件并逐个复制到目标文件夹
for file_name in files:
    if file_name in lst:
        # 构造源文件路径和目标文件路径
        src_file_path = os.path.join(src_folder, file_name)
        dst_file_path = os.path.join(dst_folder, file_name)
        # 复制文件
        shutil.copy(src_file_path, dst_file_path)

方法:

shutil.copy()

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

shutil.copyfile():

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

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

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

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

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

copy() vs copyfile() :

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

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

原文链接:https://blog.csdn.net/ncc1995/article/details/94358099
参考:【Python】将文件复制到另一个文件夹,将文件夹复制到新的位置

猜你喜欢

转载自blog.csdn.net/ThreeS_tones/article/details/130483817