Bonjour,
Ah oui, tant qu'à lire le script qui est en train de s'exécuter...
Voilà la même en une ligne:
coding = [ligne for ligne in open(os.path.abspath(sys.argv[0])) if 'coding' in ligne][0].split(' ')[2].split(':')[1]
Pour que ça marche, il ne faut pas qu'il y ait un espace entre 'coding:' et l'encodage. Sinon, il faudrait changer la formule.
Cela suppose aussi que le code .py est là, même si c'est le .pyc qui s'exécute.
Et, bien sûr, l'absence de la ligne coding plante le programme.
En l'absence d'une variable système Python qui donnerait le résultat, c'est probablement la meilleure solution (en plus de la variable globale).
Merci!
Tyrtamos
Partager