You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

39 lines
1.7 KiB

# -*- coding: utf-8 -*-
"""票 05 结构裁决落地:11 个 .bru 按 ADR-0024 原型页面树迁移(内容字节不动,纯移动)。
1) 战略协议 5 个:A4 客户管理/战略协议/ → A4 客户管理/客户详情/战略协议/
(原型 a4-4-6 页签 + a4-4-9/10 弹页,全在 A4-4 客户详情组)
2) 联系人导入 6 个:A4 客户管理/客户详情/联系人导入/ → A4 客户管理/联系人/联系人导入/
(原型 a4-5-4 在 A4-5 联系人独立菜单组)
目标目录已确认不存在(无覆盖);迁后源目录仅剩 folder.bru 时一并移走再删空壳。
"""
import shutil
import sys
from pathlib import Path
DOCS = Path(r'E:\code\crm-api-docs')
MOVES = [
(DOCS / 'A4 客户管理' / '战略协议',
DOCS / 'A4 客户管理' / '客户详情' / '战略协议'),
(DOCS / 'A4 客户管理' / '客户详情' / '联系人导入',
DOCS / 'A4 客户管理' / '联系人' / '联系人导入'),
]
moved = []
for src, dst in MOVES:
assert src.is_dir(), f'源目录缺失:{src}'
assert not dst.exists(), f'目标已存在,拒绝覆盖:{dst}'
dst.mkdir(parents=True)
for f in sorted(src.iterdir()):
shutil.move(str(f), str(dst / f.name))
moved.append(f'{f.relative_to(DOCS)} -> {(dst / f.name).relative_to(DOCS)}')
leftovers = sorted(src.iterdir())
if leftovers: # 宁停不删:意外残留即中止并报告
print('意外残留(未删源目录):', *map(str, leftovers), sep='\n ')
sys.exit(1)
src.rmdir()
print(f'OK 源目录已清空移除:{src.name}')
print(f'\n共迁移 {len(moved)} 个文件:')
print('\n'.join(' ' + m for m in moved))