파이썬을 사용하여 파일 배치를 다른 폴더에 복사

# 日期:  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가 반환됩니다.

그러나 이전에 대상 파일의 이름이 다른 경우 복사본이 해당 내용을 덮어씁니다.

대상이 디렉터리인 경우(즉, 이 메서드는 디렉터리에 복사하지 않음) 오류 13이 발생합니다.

copy() 대 copyfile():

copy()는 내용을 복사할 때 권한 비트를 설정할 수도 있지만 copyfile()은 데이터만 복사합니다.

대상이 디렉토리인 경우 copy()는 파일을 복사하고 copyfile()은 오류 13과 함께 실패합니다.

원본 링크: https://blog.csdn.net/ncc1995/article/details/94358099
참조: [Python] 파일을 다른 폴더에 복사, 폴더를 새 위치에 복사

추천

출처blog.csdn.net/ThreeS_tones/article/details/130483817