2017-09-05 2 views
0

J'ai des images dans le même répertoire avec un fichier python, j'essaie de faire une boucle sur les images et de les convertir en base64, mais je reçois cette erreur. utilisant Ubuntu Am 14.0.4boucle sur les images dans un répertoire

Traceback (most recent call last): 
    File "convert_to_base64.py", line 33, in <module> 
    print(main()) 
    File "convert_to_base64.py", line 26, in main 
    convert_to_base64() 
    File "convert_to_base64.py", line 19, in convert_to_base64 
    with open("*.jpg", "rb") as f: 
IOError: [Errno 2] No such file or directory: '*.jpg' 

Voici mon code python

# -*- coding: utf-8 -*- 
import os 
import sys 
import xlrd 
import base64 
import urllib 
from datetime import datetime 

reload(sys) # to re-enable sys.setdefaultencoding() 
sys.setdefaultencoding('utf-8') 


def convert_to_base64(): 
    """ 
    Read all jpg images in a folder, 
    and print them in base64 
    """ 
    with open("*.jpg", "rb") as f: 
     data = base64.b64decode(f.read()) 
    print data 


def main(): 
    start_datetime = datetime.now() 
    convert_to_base64() 
    end_datetime = datetime.now() 
    print '------------------------------------------------------' 
    print 'Script started : {}'.format(start_datetime) 
    print 'Script finished: {}'.format(end_datetime) 

if __name__ == '__main__': 
    print(main()) 
    print('Done') 

quelqu'un me aider à comprendre ce que je fais mal. Merci

Répondre

1

Voilà comment je mis en boucle pour les images dans un répertoire:

import os 

pictures = [] 
for file in os.listdir("pictures"): 
    if file[-3:].lower() in ["png"]: 
     pictures.append(file) 

S'il vous plaît se référer à la documentation Python https://docs.python.org/2/tutorial/inputoutput.html pour plus d'informations sur la fonction open():

retourne open() a objet de fichier, et est le plus souvent utilisé avec deux arguments: open (filename, mode).