如何编写脚本自动将metaoutput及.tml文件保存至指定路径?
自动保存.tml与metaoutput文件到指定路径的实现方案
一、自动处理.tml文件
根据需求,你可以选择实时监控自动同步或定时扫描批量处理两种方式:
1. Python实时监控脚本(推荐)
适合需要即时保存新生成的.tml文件的场景,借助watchdog库实现目录监控:
import os import time import shutil from watchdog.observers import Observer from watchdog.events import FileSystemEventHandler # 自行修改以下配置 SOURCE_DIR = "C:/Path/To/Source/Folder" # 原始.tml文件所在目录 TARGET_DIR = "D:/Path/To/Target/Folder" # 目标保存路径 TARGET_EXT = ".tml" class AutoSaveHandler(FileSystemEventHandler): def on_created(self, event): # 跳过目录,只处理指定后缀的文件 if not event.is_directory and event.src_path.endswith(TARGET_EXT): time.sleep(1) # 等待文件写入完成,避免占用报错 try: file_name = os.path.basename(event.src_path) shutil.move(event.src_path, os.path.join(TARGET_DIR, file_name)) print(f"已自动保存: {file_name} -> {TARGET_DIR}") except Exception as e: print(f"保存失败 {file_name}: {str(e)}") if __name__ == "__main__": os.makedirs(TARGET_DIR, exist_ok=True) observer = Observer() observer.schedule(AutoSaveHandler(), SOURCE_DIR, recursive=False) observer.start() try: while True: time.sleep(1) except KeyboardInterrupt: observer.stop() observer.join()
使用前需先安装依赖:pip install watchdog
2. 批处理定时脚本
适合无需实时同步,只需定期批量转移的场景,可配合Windows任务计划定时执行:
@echo off set "SOURCE_DIR=C:\Path\To\Source\Folder" set "TARGET_DIR=D:\Path\To\Target\Folder" set "TARGET_EXT=.tml" :: 确保目标目录存在 if not exist "%TARGET_DIR%" mkdir "%TARGET_DIR%" :: 移动所有.tml文件到目标路径 move "%SOURCE_DIR%\*%TARGET_EXT%" "%TARGET_DIR%\" >nul 2>&1 echo 已完成.tml文件自动保存
二、自动处理metaoutput文件
处理逻辑与.tml文件完全一致,只需修改脚本中的匹配规则:
- 固定后缀的metaoutput文件:将上述脚本中的
TARGET_EXT(Python)或TARGET_EXT(批处理)改为.metaoutput即可。 - 无固定后缀但含特定命名的文件:
- Python脚本:将
event.src_path.endswith(TARGET_EXT)替换为"metaoutput" in os.path.basename(event.src_path) - 批处理脚本:将
move "%SOURCE_DIR%\*%TARGET_EXT%" "%TARGET_DIR%\"替换为move "%SOURCE_DIR%\*metaoutput*" "%TARGET_DIR%\"
- Python脚本:将
内容的提问来源于stack exchange,提问作者shashi reddy
相关产品推荐
相关产品推荐

