J'ai un fichier csv construit ainsi:
"jean","dupont","A1"
"gilbert","martin","A2"
à partir duquel je veux créer le tableau suivant:
A1jdupont
A2gmartin
Donc je voudrais ne récupérer que la première lettre du prénom de la variable $prenom.
J'ai écris le script suivant:
#!/usr/bin/perl -w
open (LISTE, "
}
qui me donne le résultat suivant:
A1jeandupont
B2gilbertmartin
Quelqu'un a t-il une idée?
Merci
# RTFM
Posté par netsurfeur . Évalué à 2.
# en 54
Posté par Krunch (site web personnel) . Évalué à 5.
pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.
# gourmandise
Posté par Yves Agostini (site web personnel) . Évalué à 3.
my ($nom, $prenom, $group) = $ligne =~ m/''(.*?)'',''(.*?)'',''(.*?)''/;
et
$initial=substr($prenom,0,1); # chaine, offset, longueur
# C'est Ok
Posté par nanard06 . Évalué à 1.
Ce qui donne le script suivant:
<pre>
open (LISTE, "<liste.csv") or die "$!";
while (my $ligne = <LISTE>) {
next unless my ($prenom, $nom, $group) =
$ligne =~ /"([^"]+[^"])",\s*"([^"]+)",\s*"([^"]+)"/g;
$initial=substr($prenom,0,1);
print "$group$initial$nom\n";
}
</pre>
Qui me donne le résultat que je souhaitais
A1jdupont
A2gmartin
Un grand merci à tous
# Encore une fois en python
Posté par benoar . Évalué à 2.
import csv
for x in csv.reader(file("monfichier.csv")):
print x[2] + x[0][0] + x[1]
Que je trouve, comme d'hab, plus lisible.
[^] # Re: Encore une fois en python
Posté par benoar . Évalué à 2.
import csv
for prenom, nom, code in csv.reader(file("monfichier.csv")):
print code + prenom[0] + nom
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.