我写了一个将.jpg图像转换为base64的程序。现在,我想将这些写在一个csv文件中。因此,一列具有文件名(字符串),另一列具有转换后的图像(字节)。我该如何实现。到目前为止,我已经编写了以下代码。
from PIL import Image
import os
import base64
import csv
def main():
array=[]
pic_name=[]
#opens file in listed directory
for f in os.listdir('./jpg_Images'):
if f.endswith('.jpg'):
#making a list of a filename
pic_name.append(f)
#joining the path
xpath = os.path.join ('./jpg_Images',f)
#open .jpg file in Binary mode
image = open(xpath, 'rb')
#open binary file in read mode
image_read = image.read()
#encode the image
image_64_encode = base64.encodebytes(image_read)
#making the list of encoded image
array.append(image_64_encode)
with open('convert.csv', 'w') as f:
writer = csv.writer(f)
writer.writerows(zip(array, pic_name))
f.close()
if __name__ == '__main__':
main()
答案 0 :(得分:1)
幸运的是,可以将base64编码的字节字符串解码为unicode,而不会损失保真度。 base64解码为ASCI范围内的可打印(和非转义)字符。只需更改行即可:
array.append(image_64_encode)
收件人:
array.append(image_64_encode.decode())