목차
문제 설명:
현재 2차 폴더가 있는데, 1차 레벨의 폴더명은 "Papers(LNAI14302-14304)"이고, 2차 레벨 폴더의 디렉토리명은 아래 그림의 파란색 부분에 표시되어 있습니다. 세 번째 레이어는 아래 그림과 같이 저장된 파일이며, 각 파일에는 copyright.pdf, submit.pdf, source.zip이라는 세 개의 파일이 포함되어 있습니다.
파이썬으로 구현하는 방법은 3단계 디렉터리에 있는 파일의 내용을 읽고 가장 안쪽 디렉터리에 "submission.pdf"를 필터링하여 저장하는 방법입니다.
문제 해결됨:
Python은 폴더의 내용을 읽고 일부 내용을 필터링하여 다른 폴더에 쓰는 것을 인식합니다.
import os
import shutil
source_parent_folder = "Papers (LNAI14302-14305)" # 主文件夹
target_parent_folder = "LANI_submission" # 目标文件夹
# 确保目标文件夹存在
os.makedirs(target_parent_folder, exist_ok=True)
for folder_name in os.listdir(source_parent_folder):
folder_path = os.path.join(source_parent_folder, folder_name)
if os.path.isdir(folder_path):
source_file_pth = os.path.join(folder_path, "submission.pdf")
target_folder_path = os.path.join(target_parent_folder, folder_name)
target_file_path = os.path.join(target_folder_path, "submission.pdf")
# 确保目标子文件夹存在
os.makedirs(target_folder_path, exist_ok=True)
if os.path.exists(source_file_pth):
shutil.copy2(source_file_pth, target_file_path) # shutil.copy2()不仅保存内容,也保存源文件的一切具体信息。比如格式等信息,不同于shutil.copy()
print(f"Copied submission from {folder_name} to {target_folder_path}")