从目录中随机抽取图像,编码到base64,然后prin

2024-04-16 20:09:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我很难和这两个人一起工作。这让我有点沮丧,所以我希望能找到一些想法/解决办法。你知道吗

完整的作品(我正在计划的)应该从一个在线目录中获取一个随机图像,将其编码为base64,然后打印base64。我一整天都在发狂,现在我要转向Python了。向前!你知道吗

这些只是一分钟的笔记,但应该解释一下过程。你知道吗

import random, os
import base64

def search(): #get file
    path = r"/Users/Impshum/Pictures" #should be able to http
    random_filename = random.choice([
        x for x in os.listdir(path)
        if os.path.isfile(os.path.join(path, x))
    ])
    print(random_filename) #not printing full location


def encode(): #encode to base64
    image = open('heaven.jpg', 'rb')
    image_read = image.read()
    image_64_encode = base64.encodestring(image_read)
    print image_64_encode

search() #notes
encode() #notes

非常感谢。你知道吗


Tags: topathimageimportreadsearchosdef
1条回答
网友
1楼 · 发布于 2024-04-16 20:09:31

您拥有所需的大部分代码

import random, os
import base64

def search(path): #get file
    random_filename = random.choice([
        x for x in os.listdir(path)
        if os.path.isfile(os.path.join(path, x))
    ])
    return os.path.join(path, random_filename)


def encode(path):
    image = open(path, 'rb')
    image_read = image.read()
    image.close()
    image_64_encode = base64.encodestring(image_read)
    return image_64_encode

print(encode(search(r"/Users/Impshum/Pictures")))

你可以做一些事情来让这个“更好”,但这应该让你开始。你知道吗

例如,您可能希望使用glob而不是操作系统列表目录/ 操作系统路径连接以及使用上下文管理器

import glob
import base64
import random

def search(path): #get file
    random_filename = random.choice(glob.glob(path))
    return random_filename


def encode(path):
    with open(path, 'rb') as image:
        image_read = image.read()
        image_64_encode = base64.encodestring(image_read)
        return image_64_encode

print(encode(search(r"/Users/Impshum/Pictures/*")))

错误处理留给操作人员作为练习

相关问题 更多 >