lookfeiji 发表于 2023-10-24 14:14

将指定后缀的所有文件移动到指定的文件夹下

前面用论坛爬虫爬了几个G的小姐姐图片,但是图片都是一个文件夹一个文件夹存储的,感觉观赏起来不是特别舒适,然后就让gpt帮我生成了个指定后缀文件一移动到指定的文件夹下的代码,哎,gpt误我啊,生成出来移动是移动了,但是同名文件没帮我处理啊,心痛啊。。。。。无奈只能在他给的源码的基础上稍加优化一下了。

import os
import shutil

name = 0# 更改文件名,以数字0为第一个文件,避免文件出现同名覆盖的问题


def move_files(source_folder, target_folder, file_extensions):
    global name
    for root, dirs, files in os.walk(source_folder, topdown=False):
      #移动指定后缀名的文件到指定的文件夹内
      for file in files:
            if file.endswith(tuple(file_extensions)):
                source_path = os.path.join(root, file)
                new_name = f'{name}.{file.split(".")[-1]}'
                target_path = os.path.join(target_folder, new_name)
                shutil.move(source_path, target_path)# 移动文件
                name += 1

      # 删除空文件夹
      [shutil.rmtree(os.path.join(root, nome_dirs)) for nome_dirs in dirs if
         not os.listdir(os.path.join(root, nome_dirs))]

    print(f'移动文件数{name}个')


if __name__ == '__main__':
    source_folder = r'C:\Users\Administrator\Desktop\222'# 源文件夹路径
    target_folder = r'C:\Users\Administrator\Desktop\111'# 目标文件夹路径
    file_extensions = ['.jpg', '.png']# 指定移动的文件后缀列表

    move_files(source_folder, target_folder, file_extensions)# 将文件夹下的指定后缀的所有文件移动到指定文件夹下

心痛啊......

lookfeiji 发表于 2023-10-24 18:19

友情提示:源码别瞎玩,源码带深度遍历,你要源文件只指定盘符,会出问题的,例如你源文件只指定d盘,他会将你D盘下所有你所给定的后缀文件给移走,这样有可能会造成你所安装的某些软件无法启动

13699513436 发表于 2023-10-24 15:14

不懂,是不是需要Java编程更好一点

TearApart 发表于 2023-10-24 16:53

windows资源管理器里直接按类型排序,然后选择复制粘贴

lookfeiji 发表于 2023-10-24 18:08

TearApart 发表于 2023-10-24 16:53
windows资源管理器里直接按类型排序,然后选择复制粘贴

这个是深度遍历,你要源文件夹设置成d盘,他会将D盘的所有指定的后缀给你移动到另一个你指定的文件夹内

ashi876 发表于 2023-10-24 18:15

本帖最后由 ashi876 于 2023-10-24 21:09 编辑

留存待用

sdgrx 发表于 2023-10-24 19:09

谢谢分享

少年郎向前望 发表于 2023-10-24 19:40

感谢楼主分享 多谢了

SSHZDR 发表于 2023-10-24 21:13

ashi876 发表于 2023-10-24 18:15
留存待用

这才是王道{:1_921:}
页: [1]
查看完整版本: 将指定后缀的所有文件移动到指定的文件夹下