鱼C论坛

 找回密码
 立即注册
查看: 2130|回复: 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
import os
import shutil


path = '目标文件夹路径'
for each in os.listdir(path):
    if '分类关键词' in each:
        path_1 = path + os.sep + '分类关键词'
        if os.path.exists(path_1):
            shutil.move(path + os.sep + each, path_1)
        else:
            os.mkdir(path_1)
            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 | 显示全部楼层    本楼为最佳答案   
import os
import shutil


path = '目标文件夹路径'
for each in os.listdir(path):
    if '分类关键词' in each:
        path_1 = path + os.sep + '分类关键词'
        if os.path.exists(path_1):
            shutil.move(path + os.sep + each, path_1)
        else:
            os.mkdir(path_1)
            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 编辑
import os, shutil

'''
在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里面
'''
file_path = r'D:\python\test\abc'  # 目标文件夹
file_list = []

file_all = os.walk(file_path)  # 列举出所有文件和文件夹,迭代器
for i in file_all:
    print(i)
    '''
    ('D:\\python\\test\\abc', ['abc (3)', 'abc (5)', 'abc1', 'abc1 (2)', 'abc1 (4)', 'abc2', 'jpg'], [])
    ('D:\\python\\test\\abc\\abc (3)', [], ['1 - 副本 (2) - 副本.jpg'])
    ...
    '''
    for j in i[1:]:  # 去掉第一个纯文件夹目录
        if len(j) > 0:  # 去掉空文件夹
            for k in j:
                if os.path.splitext(k)[1] == '.jpg':  # 判断后缀名是否为图片
                    file_list.append(i[0] + os.sep + k)  # 组合路径
print(file_list)
for i in file_list:
    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 里面加个判断是不是文件的
if '分类关键词' in each and os.path.isfile(path + os.sep + each):
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-8 22:55

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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