#!/usr/bin/env python3 import os import html # ====================== 配置区,只需要修改这里 ====================== MEDIA_ROOT = "/home/fred/PT/Movies" OVERWRITE_EXIST_NFO = True # True: 强制重写已存在的nfo,更新标题 VIDEO_EXT = {".mkv", ".mp4", ".m4v", ".webm", ".mov", ".avi", ".flv", ".wmv"} FOLLOW_SYMLINK = False # ==================================================================== def main(): total_videos = 0 created = 0 overwrote = 0 print(f"开始递归扫描根目录:{MEDIA_ROOT}") print(f"强制重写已有nfo:{OVERWRITE_EXIST_NFO}") print("-"*60) for dirpath, _, filenames in os.walk(MEDIA_ROOT, followlinks=FOLLOW_SYMLINK): print(f"\n【正在扫描目录】{dirpath}") for fname in filenames: file_base, ext = os.path.splitext(fname) ext_lower = ext.lower() if ext_lower not in VIDEO_EXT: continue total_videos += 1 nfo_path = os.path.join(dirpath, f"{file_base}.nfo") safe_title = html.escape(file_base) nfo_content = f""" {safe_title} true """ if os.path.exists(nfo_path): # 覆盖已有nfo with open(nfo_path, "w", encoding="utf-8") as f: f.write(nfo_content) print(f" [覆盖] {fname}") overwrote +=1 else: # 新建nfo with open(nfo_path, "w", encoding="utf-8") as f: f.write(nfo_content) print(f" [新建] {fname}") created +=1 print("\n" + "="*60) print("===== 任务完成 =====") print(f"扫描到视频总数: {total_videos}") print(f"新建nfo数量: {created}") print(f"覆盖已有nfo: {overwrote}") print("="*60) if __name__ == "__main__": if not os.path.isdir(MEDIA_ROOT): print(f"错误:媒体根目录不存在 -> {MEDIA_ROOT}") else: main()