| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- import os
- import shutil
- def match_and_copy(folder_a, folder_b, output_folder):
- os.makedirs(output_folder, exist_ok=True)
- # 获取文件名(去掉后缀)
- json_names_a = {os.path.splitext(f)[0] for f in os.listdir(folder_a) if f.lower().endswith('.json')}
- jpg_names_b = {os.path.splitext(f)[0] for f in os.listdir(folder_b) if f.lower().endswith('.jpg')}
- # 找出匹配上的名字
- common_names = json_names_a.intersection(jpg_names_b)
- # 找出未匹配上的名字(json 有,jpg 没有)
- unmatched_names = json_names_a - jpg_names_b
- for name in common_names:
- jpg_src_path = os.path.join(folder_b, name + '.jpg') # jpg 来自 B
- json_src_path = os.path.join(folder_a, name + '.json') # json 来自 A
- jpg_dst_path = os.path.join(output_folder, name + '.jpg')
- json_dst_path = os.path.join(output_folder, name + '.json')
- # 复制文件
- shutil.copy2(jpg_src_path, jpg_dst_path)
- shutil.copy2(json_src_path, json_dst_path)
- print(f'完成匹配,复制了 {len(common_names)} 对文件到 {output_folder}')
- if unmatched_names:
- print("\n以下文件在文件夹A中存在 json,但文件夹B中没有对应 jpg:")
- for name in sorted(unmatched_names):
- print(f"- {name}.json")
- else:
- print("\n所有 json 文件都成功匹配到了 jpg 文件。")
- if __name__ == "__main__":
- folder_a = r"\\192.168.50.222\share\zyh\5月彩色钢板数据汇总\513-515数据汇总\0516修订彩色钢板" # 含json和jpg
- folder_b = r"\\192.168.50.222\share\zyh\5月彩色钢板数据汇总\513-515数据汇总\pcd2color_result\color_jpg" # 只有jpg
- output_folder = r"\\192.168.50.222\share\zyh\5月彩色钢板数据汇总\513-515数据汇总\0525保存xyz信息的jpg+0516修订后的json"
- match_and_copy(folder_a, folder_b, output_folder)
|