创建以数字顺序命名的图像文件

时间:2018-10-18 22:17:21

标签: python python-3.x

我有一个脚本,该脚本应该打开png图像,然后调整其大小,然后按数字顺序将其另存为jpg。但是我从互联网上复制的数字排序代码无法与PIL一起使用。它给了我异常“ KeyError:'W'”

import os
from PIL import Image

os.chdir('C:\\Users\\paul\\Downloads')

# open canvas.png
original = Image.open('canvas.png')

# resize image height to 2160
size = (3000, 2160)
original.thumbnail(size)

# convert to RGB
RGB = original.convert('RGB')

# save image as sequence
i = 0
while os.path.exists("image%s.jpg" % i):
    i += 1

RGB.save("image%s.jpg" % i, "w")

还有另一种方法吗?

1 个答案:

答案 0 :(得分:2)

根据Haken Lid的评论进行编辑

PIL文档说该函数save接受以下参数:

Image.save(fp, format=None, **params)

您传递的参数w不在可接受的文件格式集中。  Here中,您可以查看接受哪些格式。为了使它起作用,只需删除w参数并用%d替换%s(i是一个整数,而不是一个字符串):

RGB.save("image%d.jpg" % i)

注意:从标签中不清楚是使用python2还是python3。如果您使用的是python 3,建议您使用新方法来格式化字符串:

RGB.save("image{}.jpg".format(i))

您甚至可以指定填充,以便稍后可以按名称对文件排序:

RGB.save("image{:04d}.jpg".format(i))

其中4表示您的数字将以零填充,长度至少为4。