我很难一起尝试将这两者结合起来。这让我很沮丧,所以我希望找到想法/解决方案。
完整的作品(我正在计划的)应该从在线目录中获取随机图像,将其编码为base64然后打印base64。我整天都疯狂地疯了,现在我转向蟒蛇。起!
这些只是当下的一些注释,但应该解释这个过程。
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
非常感谢提前。
答案 0 :(得分:0)
您拥有所需的大部分代码
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
而不是os.listdir / os.path.join等。并使用上下文管理器
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/*")))
错误处理留作OP的练习