Génère un nouveau nom pour un fichier en gardant son extension
    
    Soit le nouveau nom est généré à partir de la date 
    (heures+minutes+secondes+microsecondes) soit un nouveau nom est spécifié et on 
    l'utilise tel quel.
    
    :type filename: string
    :param filename: Nom du fichier original
    
    :type new_filename: string
    :param new_filename: (optional) Nouveau nom de fichier personnalisé, ceci implique que 
                         la date ne sera pas insérée dans le nouveau nom
    
    :type new_extension: string
    :param new_extension: (optional) Force une nouvelle extension de fichier au lieu de 
                          celle de l'original. À spécifier sans le "point" de début d'une 
                          extension.
    
    :rtype: string
    :return: Nouveau nom de fichier

def get_unique_filename(filename, new_filename=None, new_extension=None):
    """
    Génère un nouveau nom pour un fichier en gardant son extension
    
    Soit le nouveau nom est généré à partir de la date 
    (heures+minutes+secondes+microsecondes) soit un nouveau nom est spécifié et on 
    l'utilise tel quel.
    
    :type filename: string
    :param filename: Nom du fichier original
    
    :type new_filename: string
    :param new_filename: (optional) Nouveau nom de fichier personnalisé, ceci implique que 
                         la date ne sera pas insérée dans le nouveau nom
    
    :type new_extension: string
    :param new_extension: (optional) Force une nouvelle extension de fichier au lieu de 
                          celle de l'original. À spécifier sans le "point" de début d'une 
                          extension.
    
    :rtype: string
    :return: Nouveau nom de fichier
    """
    if new_extension:
        extension = new_extension
    else:
        extension = splitext(filename)[1][1:]
    if not new_filename:
        now = real_datetime.now()
        return '%s%s%s%s.%s' % (unicode(now.hour).zfill(2), unicode(now.minute).zfill(2), unicode(now.second).zfill(2), unicode(now.microsecond).zfill(6), extension)
    else:
        return '%s.%s' % (new_filename, extension)