gpt4 book ai didi

python - 如何将图像移动到不同的目录?

转载 作者:太空宇宙 更新时间:2023-11-04 05:07:45 25 4
gpt4 key购买 nike

Python 的新手,所以请多多包涵。如果目录存在,我只想移动目录的内容。否则,想移动整个目录。清理输入目录也很理想。到目前为止,这是我所拥有的,由于某种原因这不起作用:

#!/usr/bin/python

import sys, os, glob, shutil

in_dir = '/images_in/'
out_dir = '/images_out/'
new_dirs = os.listdir(in_dir)
old_dirs = os.listdir(out_dir)

#See if directory already exists. If it doesnt exists, move entire
directory. If it does exists, move only new images.

for dir in new_dirs:
if dir not in old_dirs:
shutil.move(dir, out_dir)
else:
new_images = glob.glob(in_dir + dir + '*.jpg')
for i in new_images:
shutil.move(i, out_dir + dir + i)

最佳答案

问题是当你这样做的时候:

for i in new_images:
shutil.move(i, out_dir + dir + i)

目标路径不正确。请参阅 iglob.glob 在绝对路径上的结果。所以在前面加上另一个绝对路径是错误的。您必须改用 i 的基本名称。

我会这样做:

for i in new_images:
shutil.move(i, os.path.join(out_dir, dir, os.path.basename(i)))

旁白:

  • old_dirs 放入 set 中,以便使用 in 查找更快:old_dirs = set(os.listdir(out_dir))
  • 在处理路径部分时使用 os.path.join 而不是字符串连接(就像我在我的解决方案中所做的那样)。例如:new_images = glob.glob(os.path.join(in_dir,dir,'*.jpg')
  • dir 是一个内置列表,用于列出您正在隐藏的模块内容。不是什么大问题,但最好避免。

关于python - 如何将图像移动到不同的目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43921443/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com