如何使用python查找图像文件并以不同的文件格式保存它们?

2024-09-29 01:29:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个文件夹包含许多文件夹(52个文件夹)命名非常复杂。 在每个文件夹中,包含80个文件夹,我只想打开其中的20个。 每20个文件夹包含12个图像(有些是dicom,有些是jpeg)。我只想选择一个图像和创建一个文件夹,并保存为jpg他们

问题是, 52个文件夹的名字很复杂。 80个文件夹的所有52个文件夹的名称完全相同(A1,…A20,B1,…B20,C1,…C20,D1,…D20) 另外,12个图像是(aOri_0001,aCha_0001,。。。差不多吧)。 另一个问题是,这12个图像有52个文件夹相同的名称

希望这个问题可以理解


Tags: 图像文件夹名称a1名字命名b1jpeg
2条回答

在我看来,你至少有四个问题:

  1. 尝试遍历到20个“特殊”文件夹中的一个。你对这个问题的措辞使它变得模棱两可,你是指20个你知道名字的特定文件夹,还是20个随机文件夹。我假设是前者
  2. 正在查找这些文件夹中的所有图像文件
  3. 对于步骤#1中的给定文件夹,请将其中一个图像转换为.jpg文件
  4. 将此转换的文件移到全新的文件夹中

对于#1,可以使用os.walk()glob在给定目录及其所有子目录中搜索所需的文件。但那会把所有东西都还回去,这意味着你得把它削下来。相反,如果您已经知道这20个文件夹,那么可以从这些文件夹的列表开始,然后分别对每个文件夹应用os.walk(),以获得它们各自的内容

对于#2,请注意os.path.splitext(filename)[-1]返回文件filename的文件扩展名(包括“.”)。因此,当您遍历目录并查找文件时,可以使用此选项检查扩展名是否与要转换为.jpg的文件类型相似(不管是什么:.bmp、.png,不管是什么)

对于#3,可以使用Python的PIL模块转换给定的文件。有关如何做到这一点的更多信息,请参见this previous question

那么#4就是使用os.mkdir()这样的函数来创建目录,shutil.move()来移动它

没有示例代码,我只能做这么多。但也许这会给你指明正确的方向

import glob, os
from PIL import Image
os.chdir("/mydir")
for file in glob.glob("*.jpeg"):
    if file.endswith(".jpeg"):
        img = Image.open(file)
        img.save('image.png')

相关问题 更多 >