将所有目录中的图像复制到另一个目录中

Copying images from all the directories into another

我有一个包含大约 3000 个目录的目录。这 3000 个目录中的每一个都有 2 个 .jpg 图像。我的做法是将这 3000 个目录中的每一个图像移动到一个单独的文件夹中。这是包含所有图像的主目录。

这是我的结构的更直观的版本:

 -dir1
  -littledir1
    - image1.jpg
    -image2.jpg
  -dir2
    -littledir2
      -image1.jpg
      -image2.jpg
   .
   .
   .
  -dir 3000
    -litledir3000
       -image1.jpg
       -image2.jpg

我试图用下面的代码解决这个问题,但没有成功。保留 运行 而不复制任何内容:

我的代码:

import os
import glob
import shutil

dirpath = '/Volumes/LaCie/lfw/'
dirs = os.listdir(dirpath)

dst_dir = '/Volumes/LaCie/lfw/dstn/'

i = 1

for dirname in dirs:
    if (dirname.endswith('.DS_Store')):
        continue

    for jpgfile in glob.iglob(os.path.join(dirpath, "*.jpg")):
        shutil.copy(jpgfile, dst_dir)
        print (dst_dir)

我怎样才能更好地解决这个问题?

你的 print (dst_dir) 打印了吗?我 运行 你的代码但是那个内部打印没有 运行。

我并不是说这是一种更好的方法,但这对我有用...显然您需要根据自己的情况进行更改:

import glob
import os
import shutil

dirpath = 'dir1'
dirs = os.listdir(dirpath)

for dirname in dirs:
    print(dirname)
    os.path.join(dirpath)

    # for file in glob.iglob(os.path.join(dirpath, '*.txt')):
    #     print(file)
    for file in os.listdir(os.path.join(dirpath, dirname)):
        shutil.copy(os.path.join(dirpath, dirname, file), '.')
        print(file)

如果您使用的是 *nix 系统,请使用此

cp $(find dirpath -name "*jpg") dst_dir/