我有多个文件存在于多个文件夹内部,并且文件夹的深度层级有2-4层,需要把文件夹里面的所有文件都移动到U盘的的根目录,所以写了一个代码实现
这个代码的最终移动的目的地也不一定需要是U盘,其他指定的文件夹目录也行,反正就是把文件夹内部的所有文件都移动到第一个文件夹下面,不要层级那么深
如果存在一次没有全部移动完,也就是有遗漏的情况,把这个程序再次运行一次就行了
# 把U盘里面的文件夹的里面的所有文件都移动到根目录下面
import os
import shutil
def move_files_recursively(src_path, dst_path):
# 确保目标路径存在
if not os.path.exists(dst_path):
os.makedirs(dst_path)
# 遍历源路径中的所有内容
for item in os.listdir(src_path):
item_src_path = os.path.join(src_path, item)
# 检查当前项是文件还是文件夹
if os.path.isfile(item_src_path):
# 如果是文件,移动到目标路径
item_dst_path = os.path.join(dst_path, item)
if os.path.exists(item_dst_path):
print(f'警告:文件 {item} 已存在,将被覆盖。')
shutil.move(item_src_path, item_dst_path)
print(f'文件 {item} 已移动到 {dst_path}')
elif os.path.isdir(item_src_path):
# 如果是文件夹,递归调用函数
new_dst_path = os.path.join(dst_path, item)
move_files_recursively(item_src_path, new_dst_path)
# 指定U盘的挂载路径
u_disk_path = 'G:\\'
# 遍历U盘根目录下的所有项
for item in os.listdir(u_disk_path):
item_path = os.path.join(u_disk_path, item)
# 检查是否为文件夹
if os.path.isdir(item_path):
# 对于每个文件夹,递归地移动其所有内容到U盘根目录
move_files_recursively(item_path, u_disk_path)
print('所有文件夹中的文件已移动到U盘根目录。')