[英]Decoding a list of base64 strings into png images using for loops is only creating one file (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')]
刪除內部循環,因為現在您正在多次處理每個圖像。
for i, image in enumerate(images):
im = Image.open(BytesIO(base64.b64decode(image)))
im.save(f"{i}.png",'PNG')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.