将所有目录中的图像复制到另一个目录中
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/
我有一个包含大约 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/