我有一个文件夹,其中包含很多文件夹(52个文件夹),命名非常复杂。 在每个文件夹中,包含80个文件夹,我只想打开其中的20个。 每20个文件夹包含12张图像(有些是dicom,有些是jpeg)。我只想选择一个图像并创建一个文件夹并将其另存为jpg。
这里的问题是, 52个文件夹的名称很复杂。 对于所有52个文件夹,80个文件夹的名称完全相同。 (A1,... A20,B1,...,B20,C1,... C20,D1,...,D20) 此外,还有12张图片(A1ori_0001,A1cha_0001等)。 另一个问题是这12张图片在52个文件夹中具有相同的名称。
希望这个问题是可以理解的。
答案 0 :(得分:1)
没有示例代码,我只能做很多事情。但这也许会为您指明正确的方向。
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')
答案 1 :(得分:0)
在我看来,您至少有四个问题:
对于授予的#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()
来移动它的问题。