思路:遍历【水果】文件夹及其子文件夹。
为【水果1】创建相应的子文件夹。
从每个子文件夹中挑选指定的文件(例如 -2222.jpg 和 -3333.jpg)。
将这些文件复制或移动到【水果1】的对应子文件夹中。
[Python] 纯文本查看 复制代码 import os
import shutil
# 定义源文件夹和目标文件夹路径
source_folder = '水果'
target_folder = '水果1'
# 创建目标文件夹结构
if not os.path.exists(target_folder):
os.makedirs(target_folder)
# 遍历源文件夹的子文件夹
for root, dirs, files in os.walk(source_folder):
for dir_name in dirs:
subfolder_path = os.path.join(root, dir_name)
target_subfolder_path = os.path.join(target_folder, dir_name)
# 创建目标子文件夹
if not os.path.exists(target_subfolder_path):
os.makedirs(target_subfolder_path)
# 获取子文件夹内的文件
file_list = sorted(os.listdir(subfolder_path))
# 挑选需要移动的文件
selected_files = [file for file in file_list if file in ['-2222.jpg', '-3333.jpg']]
# 移动文件到目标文件夹
for file_name in selected_files:
source_file_path = os.path.join(subfolder_path, file_name)
target_file_path = os.path.join(target_subfolder_path, file_name)
# 移动文件
shutil.move(source_file_path, target_file_path)
或者是bat脚本:
[Bash shell] 纯文本查看 复制代码 @echo off
:: 定义源文件夹和目标文件夹路径
set SOURCE=水果
set TARGET=水果1
:: 创建目标文件夹
if not exist "%TARGET%" (
mkdir "%TARGET%"
)
:: 遍历源文件夹的子文件夹
for /d %%i in ("%SOURCE%\*") do (
:: 获取子文件夹名称
set "SUBFOLDER=%%~nxi"
:: 创建目标子文件夹
if not exist "%TARGET%\%SUBFOLDER%" (
mkdir "%TARGET%\%SUBFOLDER%"
)
:: 复制所需的文件到目标子文件夹
for %%j in (-2222.jpg -3333.jpg) do (
if exist "%%i\%%j" (
copy "%%i\%%j" "%TARGET%\%SUBFOLDER%\"
)
)
)
@echo 完成!
pause
将上述代码复制到一个文本文件中。
保存为 move_files.bat。
确保文件夹【水果】和【水果1】在脚本所在目录下,或者修改 set SOURCE=水果 和 set TARGET=水果1 为具体路径。
双击运行该脚本。 |