python - 将文件夹中的多个jpg文件编码为python中的base 64

标签 python

如何将一个文件夹中的多个 jpeg 文件编码为 base 64。目前我的代码只能对一个文件进行编码。但是我希望这样可以对文件夹路径中的所有 jpeg 文件进行编码。

with open("path\\A.jpg", "rb") as image_file:
    encoded_string = base64.b64encode(image_file.read())

extract_ocr_words(编码字符串)

在上面的路径中会有多个jpeg文件比如

A.jpg
B.jpg
C.jpg

最终输出应该结合文件夹中的所有图像并提取文本并在最终命令中显示为列表

extract_ocr_words(encoded_string)

['ABC', 'LKM', 'GHI', 'TLI', 'CLI']

最佳答案

您必须遍历文件夹内的文件。您可以使用 os 库 ( link ):

import os

words = []
directory = 'path/to/your/pictures'
for filename in os.listdir(directory):
    if filename.endswith(".jpg"): 
        with open(os.path.join(directory, filename), "rb") as image_file:
            encoded_string = base64.b64encode(image_file.read())
            words.extend(extract_ocr_Words(encoded_string))
    else:
        continue
print('Words from all files')
print(words)

您还可以使用 os.path.join() ( link to function ) 函数连接路径的两个部分。它适用于 Windows 和 Unix 系统。它比转义 \ 更好。然后由您决定如何处理编码后的图像。

您仍然可以使用 glob 包来缩短您的代码。 功能可以实现如下:

import glob

words = []
for f_name in glob.glob('*.jpg'):
    with open(f_name,"rb") as image_file:
         encoded_string = base64.b64encode(image_file.read())
         words = extract_ocr_Words(encoded_string)
         words.extend(extract_ocr_Words(encoded_string))
    else:
        continue
print('Words from all files')
print(words)

关于python - 将文件夹中的多个jpg文件编码为python中的base 64,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54862795/

相关文章:

python - 无法在 Windows 机器上安装扭曲包

python - 如何更改像按钮一样的跨度文本

python - 无法查看美国各州热图

python - $pylab 内联无效语法

python - 使用 Numpy 代替循环

python - 如何对形状为 (batch_size, 200, 256) 的张量进行索引以获得 (batch_size, 1, 256) 给定的长度 = batch_size 的索引张量列表?

python - 使用 TRUE 值从 BOOLEAN 列填充数据框列

python - Pyparsing:如何解析数据然后编辑 .txt 文件中的特定值?

python - 代理功能适用于请求,但不适用于 chrome 浏览器?

python - 构建共享 python 库表单 .cpp 文件时缺少 opencv 库