python - 使用 for 循环将 base64 字符串列表解码为 png 图像仅创建一个文件(python3)
问题描述
我有大量当前以 base64 编码的图像。我正在尝试一次将它们全部解码并将输出打印到单个文件中。
我正在尝试下面的代码,这不会导致任何错误,但是它不是为列表中的每个字符串输出不同的图像,而是输出相同图像的多个文件。
import base64
from PIL import Image
from io import BytesIO
# images = ['List of base64 strings']
for i in range(len(images)):
for b64_string in images:
im = Image.open(BytesIO(base64.b64decode(b64_string)))
im.save(f"{i}.png",'PNG')
一般来说,我是 python / 编程的新手,所以我可能对我正在尝试的东西很满意,但我很想知道我哪里出错了。提前致谢 :)
解决方案
有一种更简单的方法可以在 python 中获取索引值,您可以使用enumerate
. 它将为您提供元素和元素的索引,因此您可以迭代它并按照您的意愿进行操作。
for i, b64_string in enumerate(images):
im = Image.open(BytesIO(base64.b64decode(b64_string)))
im.save(f"{i}.png",'PNG')
文档链接:枚举
文档中的示例:
>>> seasons = ['Spring', 'Summer', 'Fall', 'Winter']
>>> list(enumerate(seasons))
[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
>>> list(enumerate(seasons, start=1))
[(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]
推荐阅读
- python - 需要整数参数,得到浮点错误并且浮点对象不能被解释为整数错误
- javascript - Javascript 异步性质
- regex - Lucene Regex 用于字母数字匹配,但不是所有数字
- javascript - 是否可以将 keyup 功能替换为按钮单击功能?
- apache-spark - 如何获取 Azure Databricks 笔记本运行详细信息
- javascript - 如何在 JAVASCRIPT 的对象中添加键值对?
- javascript - 如何正确地将德语日期字符串转换为日期?
- json - 从多级 JSON 中获取数据
- swift - 在 DatePicker-swift 中限制小时和分钟?
- html - 如何让我的 h2 元素出现在我的标题元素下?