Discussion:
Un caractère spécial...
(trop ancien pour répondre)
duareb
2022-10-19 12:29:09 UTC
Permalink
Bonjour,
Après l'importation d'un fichier texte de nombres entiers , les éléments ont ét
transformés : par exemple l'entier écrit '1 549' est devenu '1 549'
autrement dit l'espace situé entre le 1 et le 5 a été remplacé par  . Pou
revenir à la forme que je souhaite, c'est à dire 1549, la fonction "replace()
fonctionne bien. Sauf pour le "tiret du très haut" que je n'arrive pas à obteni
à l'aide du clavier. (Pour ce texte que vous lisez j'ai dû faire un copier-coll
du caractère spécial).
D'où ma question : Comment écrire ce caractère dans un fichier .py ?
Cordialement
Duareb
Alain Ketterlin
2022-10-19 12:49:42 UTC
Permalink
Post by duareb
Après l'importation d'un fichier texte de nombres entiers , les
éléments ont été transformés : par exemple l'entier écrit '1 549' est
devenu '1 549', autrement dit l'espace situé entre le 1 et le 5 a
été remplacé par  .
Cette conversion est erronée, manifestement. Cela ressemble à un
copier-coller avec des informations de formatage. Tu ferais mieux de
recommencer à zéro.
Post by duareb
Pour revenir à la forme que je souhaite, c'est à dire 1549, la
fonction "replace()" fonctionne bien. Sauf pour le "tiret du très
haut" que je n'arrive pas à obtenir à l'aide du clavier. (Pour ce
texte que vous lisez j'ai dû faire un copier-collé du caractère
spécial). D'où ma question : Comment écrire ce caractère dans un
fichier .py ?
"...\u00af..." (en python3).

Au passage : Unicode nomme ce caractère MACRON.

-- Alain.
Olivier Miakinen
2022-10-19 15:18:56 UTC
Permalink
Bonjour,
Après l'importation d'un fichier texte de nombres entiers , les éléments ont été
transformés : par exemple l'entier écrit '1 549' est devenu '1 549',
Visiblement, le fichier était en UTF-8, et après l'importation il est lu
comme si c'était du CP1252 (version Windows du Latin1).

En effet,   = E2 80 AF (en CP1252), et l'encodage UTF-8 E2 80 AF est
celui de l'espace insécable étroite U+202F ( ).

Pour obtenir une conversion parfaite, tu dois arriver à dire que tu pars
d'un fichier UTF-8, et si possible que tu veux aussi avoir à l'arrivée
un résultat en UTF-8, puisque le caractère « espace insécable étroite »
n'existe pas dans CP1252.

Sinon, si tu veux juste virer ces caractères, tu peux soit le faire dans
le fichier texte avant importation, soit dans le résultat importé en
utilisant des expressions rationnelles si tu ne peux pas copier-coller
le caractère macron.
--
Olivier Miakinen
ast
2022-11-10 13:48:43 UTC
Permalink
Post by duareb
Bonjour,
Après l'importation d'un fichier texte de nombres entiers , les éléments ont été
transformés : par exemple l'entier écrit '1 549' est devenu '1 549',
autrement dit l'espace situé entre le 1 et le 5 a été remplacé par  . Pour
revenir à la forme que je souhaite, c'est à dire 1549, la fonction "replace()"
fonctionne bien. Sauf pour le "tiret du très haut" que je n'arrive pas à obtenir
à l'aide du clavier. (Pour ce texte que vous lisez j'ai dû faire un copier-collé
du caractère spécial).
D'où ma question : Comment écrire ce caractère dans un fichier .py ?
Cordialement
Duareb
chez moi le copy paste marche bien
Post by duareb
import unicodedata as ucd
ucd.name('¯')
'MACRON'

Loading...