鱼C论坛

 找回密码
 立即注册
查看: 2034|回复: 7

[已解决]如何将多个文件夹里面的图片放在一起

[复制链接]
发表于 2020-9-24 11:48:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
RT
在D:\images下有:abc,abc(1),abc(2)...abc(n)   
还有aaa, aaa(1), aaa(2)。。。。aaa(n)
里面都是图片,然后图片名字也不一样
请问要如何把abc,abc(1),abc(2)...abc(n)  里面的图片统一放在abc里面
aaa, aaa(1), aaa(2)。。。。aaa(n) 里面的图片统一方在aaa里面
不知道怎么实现,有大佬会吗


最佳答案
2020-9-24 12:05:26
  1. import os
  2. import shutil


  3. path = '目标文件夹路径'
  4. for each in os.listdir(path):
  5.     if '分类关键词' in each:
  6.         path_1 = path + os.sep + '分类关键词'
  7.         if os.path.exists(path_1):
  8.             shutil.move(path + os.sep + each, path_1)
  9.         else:
  10.             os.mkdir(path_1)
  11.             shutil.move(path + os.sep + each, path_1)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-9-24 11:52:45 | 显示全部楼层
先用os模块递归列举出所有文件夹下文件,根据后缀名筛选出图片文件,再调用cmd命令的move,将文件移动到指定文件夹内,这样应该就可以了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-24 12:05:26 | 显示全部楼层    本楼为最佳答案   
  1. import os
  2. import shutil


  3. path = '目标文件夹路径'
  4. for each in os.listdir(path):
  5.     if '分类关键词' in each:
  6.         path_1 = path + os.sep + '分类关键词'
  7.         if os.path.exists(path_1):
  8.             shutil.move(path + os.sep + each, path_1)
  9.         else:
  10.             os.mkdir(path_1)
  11.             shutil.move(path + os.sep + each, path_1)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-24 12:09:18 | 显示全部楼层
os和shutil模块
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-24 12:13:25 | 显示全部楼层

谢谢大佬,我先去试试
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-24 12:20:43 | 显示全部楼层
本帖最后由 疾风怪盗 于 2020-9-24 12:26 编辑
  1. import os, shutil

  2. '''
  3. 在D:\images下有:abc,abc(1),abc(2)...abc(n)   
  4. 还有aaa, aaa(1), aaa(2)。。。。aaa(n)
  5. 里面都是图片,然后图片名字也不一样
  6. 请问要如何把abc,abc(1),abc(2)...abc(n)  里面的图片统一放在abc里面
  7. aaa, aaa(1), aaa(2)。。。。aaa(n) 里面的图片统一方在aaa里面
  8. '''
  9. file_path = r'D:\python\test\abc'  # 目标文件夹
  10. file_list = []

  11. file_all = os.walk(file_path)  # 列举出所有文件和文件夹,迭代器
  12. for i in file_all:
  13.     print(i)
  14.     '''
  15.     ('D:\\python\\test\\abc', ['abc (3)', 'abc (5)', 'abc1', 'abc1 (2)', 'abc1 (4)', 'abc2', 'jpg'], [])
  16.     ('D:\\python\\test\\abc\\abc (3)', [], ['1 - 副本 (2) - 副本.jpg'])
  17.     ...
  18.     '''
  19.     for j in i[1:]:  # 去掉第一个纯文件夹目录
  20.         if len(j) > 0:  # 去掉空文件夹
  21.             for k in j:
  22.                 if os.path.splitext(k)[1] == '.jpg':  # 判断后缀名是否为图片
  23.                     file_list.append(i[0] + os.sep + k)  # 组合路径
  24. print(file_list)
  25. for i in file_list:
  26.     shutil.move(i, file_path)  # 移动文件
复制代码

评分

参与人数 1荣誉 +1 鱼币 +1 收起 理由
jtxs0000 + 1 + 1 鱼C有你更精彩^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-24 12:28:53 | 显示全部楼层

大佬,移是能移了,但确实把整个文件夹都移过去了,能不能只移里面的内容啊,辛苦大佬了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-24 12:59:08 | 显示全部楼层
jtxs0000 发表于 2020-9-24 12:28
大佬,移是能移了,但确实把整个文件夹都移过去了,能不能只移里面的内容啊,辛苦大佬了

if 里面加个判断是不是文件的
  1. if '分类关键词' in each and os.path.isfile(path + os.sep + each):
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-4 13:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表