12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- import os
- import shutil
- import pandas as pd
- # 配置参数
- EXCEL_FILE = r"E:\code\zd\desktop\offline-pdf-app\xlsx\逻辑狗·幼儿思维游戏课程-大班下.xlsx"
- SOURCE_FOLDER = r"C:\Users\lvkun\Desktop\逻辑狗下\pptx" # 需要检查的文件夹
- DEST_FOLDER = r"E:\code\zd\desktop\offline-pdf-app\files" # 复制匹配文件夹的目标路径
- COLUMN_INDEX = 2 # 需要读取的列(如果有表头,用列名,如 'ID')
- # 确保目标文件夹存在
- os.makedirs(DEST_FOLDER, exist_ok=True)
- # 读取 Excel(无表头)
- df = pd.read_excel(EXCEL_FILE, header=None, dtype=str)
- # 获取 C 列的 URL,并提取 A(去掉前后部分)
- # 这里的提取规则是去掉 `https://res-teacher.luojigou.vip/pptx/` 和 `/index.html`
- def extract_a(url):
-
- return url
- # 提取所有 A
- numbers = set(df.iloc[:, COLUMN_INDEX].dropna().apply(extract_a).dropna())
- # 打印调试信息
- print("Excel 读取的字符串 A:", numbers)
- # 遍历源文件夹,查找匹配的子文件夹
- for folder_name in os.listdir(SOURCE_FOLDER):
- folder_path = os.path.join(SOURCE_FOLDER, folder_name)
- if os.path.isdir(folder_path): # 仅处理文件夹
- if folder_name in numbers: # 文件夹名匹配字符串 A
- dest_path = os.path.join(DEST_FOLDER, folder_name)
- if not os.path.exists(dest_path): # 避免重复移动
- shutil.move(folder_path, dest_path) # 移动文件夹
- print(f"✅ 移动: {folder_name} -> {DEST_FOLDER}")
- else:
- print(f"⚠️ 目标文件夹已存在: {folder_name},跳过")
- numbers.remove(folder_name) # 确保每个文件夹只移动一次
- # 完成
- print("🎉 任务完成!")
|