57 lines
2.2 KiB
Python
57 lines
2.2 KiB
Python
|
|
import os
|
|||
|
|
import shutil
|
|||
|
|
|
|||
|
|
|
|||
|
|
def copy_matching_files(folder_A, folder_B, folder_C):
|
|||
|
|
"""
|
|||
|
|
将文件夹A和文件夹B中同名的文件复制到文件夹C
|
|||
|
|
|
|||
|
|
参数:
|
|||
|
|
folder_A: 第一个文件夹路径
|
|||
|
|
folder_B: 第二个文件夹路径
|
|||
|
|
folder_C: 目标文件夹路径
|
|||
|
|
"""
|
|||
|
|
# 确保目标文件夹存在
|
|||
|
|
if not os.path.exists(folder_C):
|
|||
|
|
os.makedirs(folder_C)
|
|||
|
|
print(f"创建目标文件夹: {folder_C}")
|
|||
|
|
|
|||
|
|
try:
|
|||
|
|
# 获取两个文件夹中的文件列表(不包含目录)
|
|||
|
|
print("A")
|
|||
|
|
files_A = [f for f in os.listdir(folder_A) if os.path.isfile(os.path.join(folder_A, f))]
|
|||
|
|
print("A")
|
|||
|
|
files_B = [f for f in os.listdir(folder_B) if os.path.isfile(os.path.join(folder_B, f))]
|
|||
|
|
print(files_B)
|
|||
|
|
# 找出两个文件夹中同名的文件
|
|||
|
|
common_files = set(files_A) & set(files_B)
|
|||
|
|
# common_files = set(files_A) - set(files_B)
|
|||
|
|
if not common_files:
|
|||
|
|
print("未找到同名文件。")
|
|||
|
|
return
|
|||
|
|
|
|||
|
|
# 复制同名文件到文件夹C
|
|||
|
|
copied_count = 0
|
|||
|
|
for file_name in common_files:
|
|||
|
|
# 这里选择从folder_A复制,你也可以改为从folder_B复制或同时复制两个版本
|
|||
|
|
source_path = os.path.join(folder_A, file_name)
|
|||
|
|
dest_path = os.path.join(folder_C, file_name)
|
|||
|
|
|
|||
|
|
shutil.copy2(source_path, dest_path)
|
|||
|
|
print(f"已复制: {file_name}")
|
|||
|
|
copied_count += 1
|
|||
|
|
|
|||
|
|
print(f"\n复制完成!共复制 {copied_count} 个文件。")
|
|||
|
|
|
|||
|
|
except Exception as e:
|
|||
|
|
print(f"操作出错: {e}")
|
|||
|
|
|
|||
|
|
|
|||
|
|
# 使用示例
|
|||
|
|
if __name__ == "__main__":
|
|||
|
|
# 请修改为你的实际路径
|
|||
|
|
folder_A = r"R:\TYSAR-德清院\B-模型处理-预标注\20250818-不分类-处理20250906\人工检查\Group_6\png_txt" # 替换为第一个文件夹路径
|
|||
|
|
folder_B = r"R:\TYSAR-德清院\B-模型处理-预标注\20250818-不分类-处理20250906\人工检查\剔除空标注\G6" # 替换为第二个文件夹路径
|
|||
|
|
folder_C = r"R:\TYSAR-德清院\B-模型处理-预标注\20250818-不分类-处理20250906\人工检查\Group_6\d" # 替换为目标文件夹路径
|
|||
|
|
|
|||
|
|
copy_matching_files(folder_A, folder_B, folder_C)
|