gpt4 book ai didi

将匹配图像移动到单独文件夹的 Python 脚本

转载 作者:太空宇宙 更新时间:2023-11-03 14:10:07 24 4
gpt4 key购买 nike

我使用 glob ( https://docs.python.org/2/library/glob.html ) 创建了一个 python 脚本,该脚本将 JPG 图像与其匹配的 XML 注释进行匹配,并将其移动到不同的文件夹(例如我有 1.jpg、2.jpg、3.jpg、1 .xml、3.xml),然后将(1.jpg、1.xml 和 3.jpg、3.xml)移动到新文件夹。 2.jpg 未移动,因为没有与此图像匹配的 xml

import os
import glob
import os.path
import shutil

path = os.getcwd()
j=0


os.chdir("path\\to\\folder\\")
os.mkdir("image_with_xml") # create a new folder
newpath = "path\\to\\folder\\"+"image_with_xml"

while j < len(glob.glob(path+"\\*"))-1:
a=glob.glob(path+"\\*")[j]

b=glob.glob(path+"\\*")[j+1]


print(a)
a1 = os.path.splitext(a)[0]
b1 = os.path.splitext(b)[0]


if a1==b1:
j=j+2
shutil.move(a,newpath) # move image to new path.
shutil.move(b,newpath) # move image to new path.
else:
j=j+1

上面的代码非常适合将一些图像(但不是所有图像)移动到新文件夹,为了移动剩余图像,我必须在脚本内创建新文件夹,然后将剩余图像移动到那里(例如:可以说我有 100 个 jpg 和 100 个匹配的 XML,然后第一次运行此脚本时,只有 62 个被移动到新文件夹,第二次我使用不同的文件夹名称运行脚本时,剩余的 38 个被移动到下一个文件夹)。如何修改脚本,以便将所有具有匹配 XML 的图像移至一个文件夹?

最佳答案

这个应该可以完成这项工作。我创建了两个列表,一个是 xml,一个是 jpg。然后我检查两个列表中是否存在文件名。如果是:移动!

为了便于阅读,我添加了一个新函数来创建列表。

import os
import glob
import shutil

def remove_ext(list_of_pathnames):
"""
removes the extension from each filename
"""
return [os.path.splitext(filename)[0] for filename in list_of_pathnames]

path = os.getcwd()
os.chdir("path\\to\\folder\\")
os.mkdir("image_with_xml") # create a new folder
newpath = os.path.join("path\\to\\folder\\","image_with_xml") # made it os independent...

list_of_jpgs = glob.glob(path+"\\*.jpg")
list_of_xmls = glob.glob(path+"\\*.xml")

print(list_of_jpgs, "\n\n", list_of_xmls) #remove

jpgs_without_extension = remove_ext(list_of_jpgs)
xmls_without_extension = remove_ext(list_of_xmls)

print(jpgs_without_extension, "\n\n", xmls_without_extension) #remove

for filename in jpgs_without_extension:
if filename in xmls_without_extension:
print("moving", filename) #remove
shutil.move(filename + '.jpg'), newpath) # move image to new path.
shutil.move(filename + '.xml'), newpath) # move image to new path.

关于将匹配图像移动到单独文件夹的 Python 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48570625/

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