Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
moky
fred ha scritto:
Bonjour,
Je voudrais transformer cette chaîne de caractères en une liste :
"ABAINVILLE","48,53","5,50",298,"ABAINVILLE.txt"
chaque item de la liste étant bien sûr délimité par la paire de guillemets. (sauf pour 298, ce qui ne me facilite pas la tâche...)
Je réfléchit tout haut, mais je crois que ça peut t'aider. Si s est une chaine, et que t en est une autre,
t.split(s) est une liste qui coupe s à chaque occurence de t.
Par exemple
"bonjour".split("bonjour maman bonjour papa") donne [" maman"," papa"]
Je crois que dans ton cas, tu peux commencer par """.split(chaine)
(pas sûr de la syntaxe pour """)
Ensuite, il te suffit d'enlever les éléments de ta liste qui ne sont que ",", et d'enlever les virgules des éléments qui ne sont pas uniquement une virgule (pour traiter le cas du 298)
C'est sûrement pas la solution la plus élégante, mais ça peut dépanner si tu ne trouves pas mieux.
Bonne aprème Laurent
fred ha scritto:
Bonjour,
Je voudrais transformer cette chaîne de caractères en une liste :
"ABAINVILLE","48,53","5,50",298,"ABAINVILLE.txt"
chaque item de la liste étant bien sûr délimité par la paire de guillemets.
(sauf pour 298, ce qui ne me facilite pas la tâche...)
Je réfléchit tout haut, mais je crois que ça peut t'aider.
Si s est une chaine, et que t en est une autre,
t.split(s)
est une liste qui coupe s à chaque occurence de t.
Par exemple
"bonjour".split("bonjour maman bonjour papa")
donne
[" maman"," papa"]
Je crois que dans ton cas, tu peux commencer par
""".split(chaine)
(pas sûr de la syntaxe pour """)
Ensuite, il te suffit d'enlever les éléments de ta liste qui ne sont que
",", et d'enlever les virgules des éléments qui ne sont pas uniquement
une virgule (pour traiter le cas du 298)
C'est sûrement pas la solution la plus élégante, mais ça peut dépanner
si tu ne trouves pas mieux.
Je voudrais transformer cette chaîne de caractères en une liste :
"ABAINVILLE","48,53","5,50",298,"ABAINVILLE.txt"
chaque item de la liste étant bien sûr délimité par la paire de guillemets. (sauf pour 298, ce qui ne me facilite pas la tâche...)
Je réfléchit tout haut, mais je crois que ça peut t'aider. Si s est une chaine, et que t en est une autre,
t.split(s) est une liste qui coupe s à chaque occurence de t.
Par exemple
"bonjour".split("bonjour maman bonjour papa") donne [" maman"," papa"]
Je crois que dans ton cas, tu peux commencer par """.split(chaine)
(pas sûr de la syntaxe pour """)
Ensuite, il te suffit d'enlever les éléments de ta liste qui ne sont que ",", et d'enlever les virgules des éléments qui ne sont pas uniquement une virgule (pour traiter le cas du 298)
C'est sûrement pas la solution la plus élégante, mais ça peut dépanner si tu ne trouves pas mieux.
Bonne aprème Laurent
Alain BARTHE
fred a écrit :
Bonjour,
Je voudrais transformer cette chaîne de caractères en une liste :
"ABAINVILLE","48,53","5,50",298,"ABAINVILLE.txt"
chaque item de la liste étant bien sûr délimité par la paire de guillemets. (sauf pour 298, ce qui ne me facilite pas la tâche...)
Tout le problème (pour moi) est la présence des virgules dans les nombres...
Merci d'avance.
Cdlt.
Elle vient d'où cette chaine ? Un export de données Excel ou qlq chose du style ?
Si oui, peut-être pourrais-tu changer le séparateur "," par autre chose.
Ca ne résout pas le problème posé, mais le problème lui-même.
Un simple split () te suffirait alors.
fred a écrit :
Bonjour,
Je voudrais transformer cette chaîne de caractères en une liste :
"ABAINVILLE","48,53","5,50",298,"ABAINVILLE.txt"
chaque item de la liste étant bien sûr délimité par la paire de guillemets.
(sauf pour 298, ce qui ne me facilite pas la tâche...)
Tout le problème (pour moi) est la présence des virgules dans les nombres...
Merci d'avance.
Cdlt.
Elle vient d'où cette chaine ?
Un export de données Excel ou qlq chose du style ?
Si oui, peut-être pourrais-tu changer le séparateur "," par autre chose.
Ca ne résout pas le problème posé, mais le problème lui-même.
Je voudrais transformer cette chaîne de caractères en une liste :
"ABAINVILLE","48,53","5,50",298,"ABAINVILLE.txt"
chaque item de la liste étant bien sûr délimité par la paire de guillemets. (sauf pour 298, ce qui ne me facilite pas la tâche...)
Tout le problème (pour moi) est la présence des virgules dans les nombres...
Merci d'avance.
Cdlt.
Elle vient d'où cette chaine ? Un export de données Excel ou qlq chose du style ?
Si oui, peut-être pourrais-tu changer le séparateur "," par autre chose.
Ca ne résout pas le problème posé, mais le problème lui-même.
Un simple split () te suffirait alors.
fred
Alain BARTHE a écrit :
fred a écrit :
Bonjour, Je voudrais transformer cette chaîne de caractères en une liste : "ABAINVILLE","48,53","5,50",298,"ABAINVILLE.txt" chaque item de la liste étant bien sûr délimité par la paire de guillemets. (sauf pour 298, ce qui ne me facilite pas la tâche...) Tout le problème (pour moi) est la présence des virgules dans les nombres... Merci d'avance. Cdlt.
Elle vient d'où cette chaine ? Un export de données Excel ou qlq chose du style ?
Si oui, peut-être pourrais-tu changer le séparateur "," par autre chose.
Ca ne résout pas le problème posé, mais le problème lui-même.
Un simple split () te suffirait alors.
Good shot! :-))
En attendant, je l'ai fait à ma sauce (merci quand même, Moky), et « ça marche ! ® » mais bon, je retiens ton idée on ne peut plus triviale.
Merci.
-- Fred
Alain BARTHE <alain.barthe.65@free.fr> a écrit :
fred a écrit :
Bonjour,
Je voudrais transformer cette chaîne de caractères en une liste :
"ABAINVILLE","48,53","5,50",298,"ABAINVILLE.txt"
chaque item de la liste étant bien sûr délimité par la paire de
guillemets.
(sauf pour 298, ce qui ne me facilite pas la tâche...)
Tout le problème (pour moi) est la présence des virgules dans les
nombres...
Merci d'avance.
Cdlt.
Elle vient d'où cette chaine ?
Un export de données Excel ou qlq chose du style ?
Si oui, peut-être pourrais-tu changer le séparateur "," par autre chose.
Ca ne résout pas le problème posé, mais le problème lui-même.
Un simple split () te suffirait alors.
Good shot! :-))
En attendant, je l'ai fait à ma sauce (merci quand même, Moky), et « ça marche ! ® »
mais bon, je retiens ton idée on ne peut plus triviale.
Bonjour, Je voudrais transformer cette chaîne de caractères en une liste : "ABAINVILLE","48,53","5,50",298,"ABAINVILLE.txt" chaque item de la liste étant bien sûr délimité par la paire de guillemets. (sauf pour 298, ce qui ne me facilite pas la tâche...) Tout le problème (pour moi) est la présence des virgules dans les nombres... Merci d'avance. Cdlt.
Elle vient d'où cette chaine ? Un export de données Excel ou qlq chose du style ?
Si oui, peut-être pourrais-tu changer le séparateur "," par autre chose.
Ca ne résout pas le problème posé, mais le problème lui-même.
Un simple split () te suffirait alors.
Good shot! :-))
En attendant, je l'ai fait à ma sauce (merci quand même, Moky), et « ça marche ! ® » mais bon, je retiens ton idée on ne peut plus triviale.
Merci.
-- Fred
Thomas
Salut,
On Jul 28, 3:28 pm, fred wrote:
Je voudrais transformer cette chaîne de caractères en une liste : "ABAINVILLE","48,53","5,50",298,"ABAINVILLE.txt"
Moi je jouerais avec les expressions régulières, genre :
import re s = '"ABAINVILLE","48,53","5,50",298,"ABAINVILLE.txt"' l = re.findall('"?([^"]*)"?,?',s) print l
Avec un petit l.pop() avant le print, ça doit rouler. Et pour gérer les ',' dans les nombres, on les remplace par des '.' et on demande le résultat en float(), genre : map( lambda s: float(s.replace(',','.')), l[1:4] )
Ok, c'est bidouille, mais en gros ça doit marcher.
-- Thomas
Salut,
On Jul 28, 3:28 pm, fred <fredantis...@free.fr> wrote:
Je voudrais transformer cette chaîne de caractères en une liste :
"ABAINVILLE","48,53","5,50",298,"ABAINVILLE.txt"
Moi je jouerais avec les expressions régulières, genre :
import re
s = '"ABAINVILLE","48,53","5,50",298,"ABAINVILLE.txt"'
l = re.findall('"?([^"]*)"?,?',s)
print l
Avec un petit l.pop() avant le print, ça doit rouler. Et pour gérer
les ',' dans les nombres, on les remplace par des '.' et on demande le
résultat en float(), genre :
map( lambda s: float(s.replace(',','.')), l[1:4] )
Ok, c'est bidouille, mais en gros ça doit marcher.
Avec un petit l.pop() avant le print, ça doit rouler. Et pour gérer les ',' dans les nombres, on les remplace par des '.' et on demande le résultat en float(), genre : map( lambda s: float(s.replace(',','.')), l[1:4] )
Ok, c'est bidouille, mais en gros ça doit marcher.
-- Thomas
Alain Ketterlin
fred writes:
Je voudrais transformer cette chaîne de caractères en une liste :
Si tu as des doutes sur la provenance de ta chaîne, n'oublie pas de li re attentivement la documentation d'eval(). Si tu essaies de lire des fichiers CSV/etc. il y a probablement un module tout prêt qui fera tout cela beaucoup mieux.
-- Alain.
fred <fredantispam@free.fr> writes:
Je voudrais transformer cette chaîne de caractères en une liste :
Si tu as des doutes sur la provenance de ta chaîne, n'oublie pas de li re
attentivement la documentation d'eval(). Si tu essaies de lire des
fichiers CSV/etc. il y a probablement un module tout prêt qui fera tout
cela beaucoup mieux.
Si tu as des doutes sur la provenance de ta chaîne, n'oublie pas de li re attentivement la documentation d'eval(). Si tu essaies de lire des fichiers CSV/etc. il y a probablement un module tout prêt qui fera tout cela beaucoup mieux.
-- Alain.
yves
Le Tue, 28 Jul 2009 17:28:48 +0200, fred a écrit:
Bonjour,
Je voudrais transformer cette chaîne de caractères en une liste : "ABAINVILLE","48,53","5,50",298,"ABAINVILLE.txt" chaque item de la liste étant bien sûr délimité par la paire de guillemets. (sauf pour 298, ce qui ne me facilite pas la tâche...) Tout le problème (pour moi) est la présence des virgules dans les nombres...
Et en utilisant le module csv ?:
:~/essai$ ls fichier script.py :~/essai$ cat fichier "ABAINVILLE","48,53","5,50",298,"ABAINVILLE.txt" :~/essai$ cat script.py import csv reader = csv.reader(file("fichier")) for elt in reader: print elt :~/essai$ python script.py ['ABAINVILLE', '48,53', '5,50', '298', 'ABAINVILLE.txt']
Cordialement, -- Yves
Le Tue, 28 Jul 2009 17:28:48 +0200, fred a écrit:
Bonjour,
Je voudrais transformer cette chaîne de caractères en une liste :
"ABAINVILLE","48,53","5,50",298,"ABAINVILLE.txt"
chaque item de la liste étant bien sûr délimité par la paire de
guillemets. (sauf pour 298, ce qui ne me facilite pas la tâche...)
Tout le problème (pour moi) est la présence des virgules dans les
nombres...
Et en utilisant le module csv ?:
yves@dell:~/essai$ ls
fichier script.py
yves@dell:~/essai$ cat fichier
"ABAINVILLE","48,53","5,50",298,"ABAINVILLE.txt"
yves@dell:~/essai$ cat script.py
import csv
reader = csv.reader(file("fichier"))
for elt in reader:
print elt
yves@dell:~/essai$ python script.py
['ABAINVILLE', '48,53', '5,50', '298', 'ABAINVILLE.txt']
Je voudrais transformer cette chaîne de caractères en une liste : "ABAINVILLE","48,53","5,50",298,"ABAINVILLE.txt" chaque item de la liste étant bien sûr délimité par la paire de guillemets. (sauf pour 298, ce qui ne me facilite pas la tâche...) Tout le problème (pour moi) est la présence des virgules dans les nombres...
Et en utilisant le module csv ?:
:~/essai$ ls fichier script.py :~/essai$ cat fichier "ABAINVILLE","48,53","5,50",298,"ABAINVILLE.txt" :~/essai$ cat script.py import csv reader = csv.reader(file("fichier")) for elt in reader: print elt :~/essai$ python script.py ['ABAINVILLE', '48,53', '5,50', '298', 'ABAINVILLE.txt']