kaliwobuhui
codeislong
采纳率75%
2021-02-05 16:25 阅读 66

python怎么把文件夹中图片按一定数量分到不同文件夹

比如文件夹1中有300个图片,按98张图片一个文件夹分到文件夹1,2,3。最后一个文件夹放剩下的。图片已经按1.jpg,2.jpg命名好了。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

5条回答 默认 最新

  • 已采纳
    songhaixing2 给你骨质唱疏松 2021-02-05 18:45
    import os,shutil
    
    def run(file1):
        dir,file = os.path.split(file1)
        for i in range(2,5):
            os.mkdir(os.path.join(dir,f"{file}{i}"))
        for root,dirs,files in os.walk(file1):
            for img_name in files:
                num = int(img_name.split(".")[0])
                if num > 98 and num <= 98*2:
                    shutil.move(os.path.join(file1, img_name),f"{file1}2")
                elif num > 98*2 and num <= 98*3:
                    shutil.move(os.path.join(file1, img_name),f"{file1}3")
                elif num > 98*3:
                    shutil.move(os.path.join(file1, img_name), f"{file1}4")
                    
    run("这里放你的300图片文件路径")

    已经经过测试了 : 

     

     

    点赞 1 评论 复制链接分享
  • weixin_43162240 Bryce__LY 2021-02-05 16:34
    import os,shutil
    
    folder1 = r""
    folder2 = r""
    folder3 = r""
    folder4 = r""
    
    for img_name in os.listdir(folder1):
         if int(img_name.split("."))>98 and int(img_name.split("."))<=98*2:
              shutil.move(os.path.join(folder1,img_name),os.path.join(folder2,img_name))
         if int(img_name.split("."))>98*2 and int(img_name.split("."))<=98*3:
              shutil.move(os.path.join(folder1,img_name),os.path.join(folder3,img_name))
         shutil.move(os.path.join(folder1,img_name),os.path.join(folder4,img_name))
    点赞 1 评论 复制链接分享
  • kaliwobuhui codeislong 2021-02-05 16:54

    感谢大佬

    点赞 1 评论 复制链接分享
  • kaliwobuhui codeislong 2021-02-05 17:13

    好像有点不对int() argument must be a string, a bytes-like object or a number, not 'list'

    点赞 1 评论 复制链接分享
  • kaliwobuhui codeislong 2021-02-05 18:55

    可以可以,大佬牛逼

    点赞 评论 复制链接分享

相关推荐