Python:根据文件名

时间:2018-04-18 07:19:07

标签: python python-3.x image python-imaging-library batch-processing

我有一个包含10个图像的文件夹,我希望根据它的当前文件名移动到新文件夹中。我已经成功地将文件夹中的每个图像移动到一个新文件夹中,到目前为止,我已成功将每个图像文件名移动到其自己的文件夹中,但我还没弄清楚如何将具有相同文件名的所有图像移动到一个文件夹中,将另一个文件移动到另一个文例如下面我想相应地移动图像。

  • 1600_01.jpg --->文件夹1
  • 1700_01.jpg --->文件夹1
  • 1800_02.jpg --->文件夹2
  • 1900_02.jpg --->文件夹2
  • 2000_03.jpg --->文件夹3
  • 2100_03.jpg --->文件夹3

这是我目前为止通过基于文件名创建新文件夹将图像文件移动到新文件夹的代码。我参与制作文件夹,但是当它为所有图像创建单独的图像文件夹时我感到很困惑。

import os, shutil, glob

#Source file 
sourcefile = 'Desktop/00/'

# for loop then I split the names of the image then making new folder 
for file_path in glob.glob(os.path.join(sourcefile, '*.jpg*')):
    new_dir = file_path.rsplit('.', 1)[0]    
    # If folder does not exist try making new one
    try:
        os.mkdir(os.path.join(sourcefile, new_dir))
    # except error then pass
    except WindowsError:
        pass
    # Move the images from file to new folder based on image name
    shutil.move(file_path, os.path.join(new_dir, os.path.basename(file_path)))

这是我运行脚本后得到的。 This is what I got after I ran my script

但是,我尝试做的事情如下图所示: Goal

1 个答案:

答案 0 :(得分:3)

您可以尝试使用os.path.exists()来检查文件夹是否存在,如果存在则将jpg复制到其中。顺便说一句,如果你使用副本会更好,因为当你使用移动时,如果你做错了什么,你基本上就把所有东西混在一起。

@Bean
public Step step(){
    return stepBuilders.get("step")
                 .tasklet(tasklet())
                 .build();
}

enter image description here