Aller au contenu

Le fil des geeks informatiques


Johnnieboy

Messages recommandés

il y a 5 minutes, Rübezahl a dit :

Par le plus grand des hasards,

qqun ici aurait déjà réussi à faire avaler des caractères accentués (é, è, à, etc) au module python commonmark ?

 

Si oui, svp, tell me how.

Je ne connais pas mais tu as essayé de modifier l'encodage en UTF-8 ?

Lien vers le commentaire
il y a 41 minutes, Frenhofer a dit :

Je ne connais pas mais tu as essayé de modifier l'encodage en UTF-8 ?

oui. C'est fait.

Mais ça plante toujours.
Il faut que je fasse quelque chose avant de faire avaler la chaine avec des accents par commonmark.

 

ça doit pas être sorcier. Mais je viens seulement d'isoler très précisément le code coupable.

(Je dois prendre des précautions/moufles pour qu'il ne s'hybride pas avec le corona. Donc je travaille encore pire que d'hab ? ).

 

edit (for the record)
text = text.decode('utf8')

permet d'utiliser commonmark sans planter.

... mais ça plante pour d'autres cas.
Il faut que je flanque une condition : if yadesaccents : text = text.decode('utf8')

Lien vers le commentaire

Python 3 ou 2 ?

Sinon tu le tire d'où le texte ? Si c'est d'un fichier tu dois utiliser l'encodage de ce dernier. La commande file permet de savoir, si le fichier a été créé avant le passage au tout utf-8 alors il peut-être en latin-1 aussi.

Lien vers le commentaire
il y a 30 minutes, Noob a dit :

Python 3 ou 2 ?

Sinon tu le tire d'où le texte ? Si c'est d'un fichier tu dois utiliser l'encodage de ce dernier. (commande file pour savoir)

Là, c'est avec python2.

Because, quand j'ai installé commonmark, j'ai du le faire en python 2.

J'ai vu que, en effet, il y a de sacrés différences pour certaines fonctions concernées (open() etc) entre python 2 et 3.

Merci pour la piste. Je vais creuser.

Lien vers le commentaire

j'ai deja eu des probeme d'encoding avec python 2 que j'avais pas en python 3 avec certaines librairies. Après l'encoding c'est le démon de toute façon.

Lien vers le commentaire
12 minutes ago, Prouic said:

j'ai deja eu des probeme d'encoding avec python 2 que j'avais pas en python 3 avec certaines librairies. Après l'encoding c'est le démon de toute façon.

C'est narmol. Le plus gros changement de python 3 c'est le passage a unicode.

Lien vers le commentaire
4 hours ago, Rübezahl said:

Là, c'est avec python2.

Ha ça peut venir de là, perso si j'étais un dev d'une biblio en python je ferais juste de la maintenance de sécurité sur tout ce qui touche python 2. Vu que c'est supposé fonctionner directement avec Python 3.

4 hours ago, Rübezahl said:

Because, quand j'ai installé commonmark, j'ai du le faire en python 2.

J'ai vu que, en effet, il y a de sacrés différences pour certaines fonctions concernées (open() etc) entre python 2 et 3.

Merci pour la piste. Je vais creuser.

En fait le plus simple reste d'utiliser un gestionnaire d'environnement. comme virtualenv, venv (python 3 seulement) ou anaconda, ça te permet de changer d'environnement facilement.

Lien vers le commentaire
2 hours ago, Noob said:

Ha ça peut venir de là, perso si j'étais un dev d'une biblio en python je ferais juste de la maintenance de sécurité sur tout ce qui touche python 2. Vu que c'est supposé fonctionner directement avec Python 3.

En fait le plus simple reste d'utiliser un gestionnaire d'environnement. comme virtualenv, venv (python 3 seulement) ou anaconda, ça te permet de changer d'environnement facilement.

Python 2 n'est plus maintenu, même pour la sécurité , depuis janvier 2020. Date de départ du covid. Hasard ? Je ne crois pas.

 

Pour mélanger différentes versions de python, il y a pyenv ou pythonz/pew.

 

Lien vers le commentaire

Merci à tous pour vos conseils.

Je vais essayer plusieurs trucs today, dont en effet de lancer le bouzin en python3.

 

J'utilise python3 en général, mais là je crois qu'il y avait un souci d'install de commonmark.

Comme ça gazait de suite en python2.7, je ne m'en étais juste plus soucié (vilain pragmatisme !).

Lien vers le commentaire

Bon, le problème semble réglé.

For the record :

J'ai installé commonmark avec

pip3 install commonmark

L'install est très différente de celle réalisée avec pip (0 paquets installés en plus, contre 20 avec pip ?)

Je peux donc utiliser python3 ... et la gestion des caractères accentués semble ok.

Merci pour tous vos tuyaux.

  • Yea 1
Lien vers le commentaire
il y a 18 minutes, Rübezahl a dit :

Je vous sollicite à nouveau. J'ai les yeux crevés !

 

https://ozat.fr/

 

J'ai pas le petit cadenas vert. Ouin. C'est trop injuste.

(Je l'ai pour plusieurs de mes autres sites, mais je me rappelle plus de tout ce que j'ai fait pour y arriver)

Vous auriez des pistes ?

Merci.

 

Chez moi, le cert Let's Encrypt est à jour. La connexion est sécurisée. Tu utilises nginx ?

Lien vers le commentaire
il y a 4 minutes, Frenhofer a dit :

Chez moi, le cert Let's Encrypt est à jour. La connexion est sécurisée. Tu utilises nginx ?

Tu veux dire que tu vois le cadenas vert ?

 

En fait ozat.fr est juste une redirection sur https://khi.fr/ozat   (qui m'affiche le cadenas vert)

et qui est un hébergement mutualisé chez OVH (je ne sais pas ce qu'ils utilisent comme serveur ?)

 

Même pour https://ozat.fr/test-page-vide  qui est une page quasi vide, je n'ai pas le cadenas vert.

 

Je subodore que c'est ma redirection qui est la cause du problème ?

 

Lien vers le commentaire
il y a 41 minutes, Rübezahl a dit :

Tu veux dire que tu vois le cadenas vert ?

 

En fait ozat.fr est juste une redirection sur https://khi.fr/ozat   (qui m'affiche le cadenas vert)

et qui est un hébergement mutualisé chez OVH (je ne sais pas ce qu'ils utilisent comme serveur ?)

 

Même pour https://ozat.fr/test-page-vide  qui est une page quasi vide, je n'ai pas le cadenas vert.

 

Je subodore que c'est ma redirection qui est la cause du problème ?

 

En regardant dans la console sur la page test-page-vide, il bloque sur un point. Testé avec chrome en private.

Mixed Content: The page at 'https://ozat.fr/test-page-vide' was loaded over HTTPS, but requested an insecure favicon 'http://khi.fr/erreur404.php'. This request has been blocked; the content must be served over HTTPS

Donc t'as un truc en http qui traîne on dirait.

  • Yea 1
Lien vers le commentaire
il y a 1 minute, Frenhofer a dit :

En regardant dans la console sur la page test-page-vide, il bloque sur un point. Testé avec chrome en private.

Mixed Content: The page at 'https://ozat.fr/test-page-vide' was loaded over HTTPS, but requested an insecure favicon 'http://khi.fr/erreur404.php'. This request has been blocked; the content must be served over HTTPS

Donc t'as un truc en http qui traîne on dirait.

ah, merci ! Je vais gratter ça.

Lien vers le commentaire

Je continue à abuser :

J'aurais besoin de remplacer dans un fichier local la chaîne de caractères "blabla" par "blibli".

 

Si un pythoneux plus doué que moi peut me donner les quelques lignes, merci.

 

(C'est pour timestamper certains fichiers html mis en ligne).

Lien vers le commentaire
7 hours ago, Rübezahl said:

Je continue à abuser :

J'aurais besoin de remplacer dans un fichier local la chaîne de caractères "blabla" par "blibli".

 

Si un pythoneux plus doué que moi peut me donner les quelques lignes, merci.

 

(C'est pour timestamper certains fichiers html mis en ligne).

Tu cherches juste comment remplacer une chaîne de caractères ou tu veux aussi savoir comme ouvrir un fichier et écrire dedans ?

Un exemple simple avec un fichier in et un autre out.

fin = open("data.txt", "rt")
fout = open("out.txt", "wt")

for line in fin:
	fout.write(line.replace('pyton', 'python'))
	
fin.close()
fout.close()

Après si tu veux faire vraiment dans le même fichier texte soit tu vires l'ancien et tu renommes avec le nouveau.

Soit tu utilises fileinput:

import fileinput

with fileinput.FileInput(filename, inplace=True, backup='.bak') as file:
    for line in file:
        print(line.replace(text_to_search, replacement_text), end='')

 

  • Love 1
Lien vers le commentaire
il y a 4 minutes, ttoinou a dit :

Sinon le chercher et remplacer d'un editeur de texte comme notepad++ ferait l'affaire

oui,

mais en fait je ponds mon site en html avec un minuscule SSG (Static Site Generator) déjà en python.

Donc, si je peux ajouter dedans une petite fonction pour insérer automatiquement le timestamp de l'update, c'est sympa.

(Je pourrais aussi utiliser la fonction php qui va bien).

 

(C'est pour https://ozat.fr  toutes vos idées/suggestions sont bienvenues).

Lien vers le commentaire
  • 4 weeks later...
il y a 50 minutes, RaHaN a dit :

Ce générique de fin ?

 

Donnez-moi le nom du PC qu'elle utilise, que je vois qui est aussi dinosaure que moi. 

Lien vers le commentaire
  • 4 weeks later...

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...