modification et transformation d'un fichier CSV pour importation
42 réponses
---DGI972---
bonjour
Je dois faire un VBScript qui qui doit transformer et suprimer des
valeurs dans un fichier csv.
Issue d'une exportation d'un logiciel le fichier a traiter est de la
forme:
"D:\EXPORT\image0001.tif";"JEAN";"VALJEAN"
"D:\EXPORT\image0002.tif";"LOUIS";"GEORGES"
"D:\EXPORT\image0003.tif";"FELIX";LOUIS"
pour l'importer dans un autre logicel il faut que que le fichier soit
de la forme:
Il faut donc mettre le premier champ à la fin et suprimer le chemin
D:\EXPORT\ dans le premier champ.
je ne vois pas par quel bout prendre ce problème et je vous solicite
pour un début d'analyse.
un split dans un tableau puis un remplacement de D:\EXPORT\ par rien ?
Pour le slicing, en Python, il a 3 paramètres : début, fin, pas. Et, il y a toujours une valeur par défaut.
Par exemple : a=[1,2,3,4,5,6] print a[2:5:2] donne => [ 3, 5] (Python commence à 0, et tout indice pointe au début de la valeur) print a[-2::-2] donne => [ 5, 3, 1]
Mais ce n'est pas une simple syntaxe. Un slice est un objet. Par exemple, on peut en faire un iterator : a=[1,2,3,4,5,6] g=iter(a[2:5]) print g.next() donne => 3 print g.next() donne => 4 print g.next() donne => 5
On peut aussi appliquer une fonction à tous les éléments : def fexemple(a): return a*2
a=[1,2,3,4,5,6] print a[2:5:2] donne [ 3, 5] print map(fexemple,a[2:5:2]) donne [ 6, 10]
Dernier point (pour le fun), typiquement Python ; avec : a=[1,2,3,4,5,6] b=a c=a[:] on obtient b identique à a, alors que c est un autre objet, qui est égal à a. La distinction surprend souvent ceux qui viennent d'autres langages. Dans Python, les variables sont des noms sur des objets, et non des noms d'espaces de stockage (la démarche est similaire avec Ruby, ou Self). On comprend mieux, si on continue le code : a[2]333 print a => [1,2,3333,4,5,6] print b => [1,2,3333,4,5,6] print c => [1,2,3,4,5,6]
Pour "cooommmandelletteeeeee" ce n'était pas pour se moquer, mais pour donner un peu plus de vie au message....
Pour "cet hiver, au coin de la cheminée ?", avec l'arrivée de Vista, j'ai comme un doute...
Bonne journée (malgré la chaleur).
@-salutations
Michel Claveau
Salut !
Pour le slicing, en Python, il a 3 paramètres : début, fin, pas. Et, il y a
toujours une valeur par défaut.
Par exemple :
a=[1,2,3,4,5,6]
print a[2:5:2] donne => [ 3, 5] (Python commence à 0, et tout
indice pointe au début de la valeur)
print a[-2::-2] donne => [ 5, 3, 1]
Mais ce n'est pas une simple syntaxe. Un slice est un objet. Par exemple, on
peut en faire un iterator :
a=[1,2,3,4,5,6]
g=iter(a[2:5])
print g.next() donne => 3
print g.next() donne => 4
print g.next() donne => 5
On peut aussi appliquer une fonction à tous les éléments :
def fexemple(a):
return a*2
a=[1,2,3,4,5,6]
print a[2:5:2] donne [ 3, 5]
print map(fexemple,a[2:5:2]) donne [ 6, 10]
Dernier point (pour le fun), typiquement Python ; avec :
a=[1,2,3,4,5,6]
b=a
c=a[:]
on obtient b identique à a, alors que c est un autre objet, qui est égal à
a. La distinction surprend souvent ceux qui viennent d'autres langages. Dans
Python, les variables sont des noms sur des objets, et non des noms
d'espaces de stockage (la démarche est similaire avec Ruby, ou Self).
On comprend mieux, si on continue le code :
a[2]333
print a => [1,2,3333,4,5,6]
print b => [1,2,3333,4,5,6]
print c => [1,2,3,4,5,6]
Pour "cooommmandelletteeeeee" ce n'était pas pour se moquer, mais pour
donner un peu plus de vie au message....
Pour "cet hiver, au coin de la cheminée ?", avec l'arrivée de Vista, j'ai
comme un doute...
Pour le slicing, en Python, il a 3 paramètres : début, fin, pas. Et, il y a toujours une valeur par défaut.
Par exemple : a=[1,2,3,4,5,6] print a[2:5:2] donne => [ 3, 5] (Python commence à 0, et tout indice pointe au début de la valeur) print a[-2::-2] donne => [ 5, 3, 1]
Mais ce n'est pas une simple syntaxe. Un slice est un objet. Par exemple, on peut en faire un iterator : a=[1,2,3,4,5,6] g=iter(a[2:5]) print g.next() donne => 3 print g.next() donne => 4 print g.next() donne => 5
On peut aussi appliquer une fonction à tous les éléments : def fexemple(a): return a*2
a=[1,2,3,4,5,6] print a[2:5:2] donne [ 3, 5] print map(fexemple,a[2:5:2]) donne [ 6, 10]
Dernier point (pour le fun), typiquement Python ; avec : a=[1,2,3,4,5,6] b=a c=a[:] on obtient b identique à a, alors que c est un autre objet, qui est égal à a. La distinction surprend souvent ceux qui viennent d'autres langages. Dans Python, les variables sont des noms sur des objets, et non des noms d'espaces de stockage (la démarche est similaire avec Ruby, ou Self). On comprend mieux, si on continue le code : a[2]333 print a => [1,2,3333,4,5,6] print b => [1,2,3333,4,5,6] print c => [1,2,3,4,5,6]
Pour "cooommmandelletteeeeee" ce n'était pas pour se moquer, mais pour donner un peu plus de vie au message....
Pour "cet hiver, au coin de la cheminée ?", avec l'arrivée de Vista, j'ai comme un doute...
Bonne journée (malgré la chaleur).
@-salutations
Michel Claveau
Jacques Barathon [MS]
"Méta-MCI" wrote in message news: <snip>
Mais ce n'est pas une simple syntaxe. Un slice est un objet. Par exemple, on peut en faire un iterator : a=[1,2,3,4,5,6] g=iter(a[2:5]) print g.next() donne => 3 print g.next() donne => 4 print g.next() donne => 5
Intéressant. Il me semble que la classe IEnumerator fait à peu près la même chose pour des objets de type Array, mais je n'ai jamais pratiqué.
On peut aussi appliquer une fonction à tous les éléments : def fexemple(a): return a*2
Intéressant aussi, mais ambigu car selon le type d'opération réalisée par la fonction on peut vouloir l'appliquer à tout le tableau et pas simplement à chacun des éléments. Par exemple, sous PowerShell la multiplication donne ça:
PS> $a=(1,2) PS> $a*2 1 2 1 2
Pour appliquer la multiplication à chaque élément on devra explicitement énumérer les éléments, ce qui se fait simplement avec % (raccourci pour foreach-object):
PS> $a | %{$_*2} 2 4
Et l'addition donnera ceci:
PS> $a+3 1 2 3
La même construction que ci-dessus sera nécessaire pour appliquer l'addition à chaque élément:
PS> $a | %{$_+3} 4 5
Pour ma culture (j'ai la flemme de plonger dans les docs), comment fais-tu les opérations ci-dessus en Python?
Dernier point (pour le fun), typiquement Python ; avec : a=[1,2,3,4,5,6] b=a c=a[:] on obtient b identique à a, alors que c est un autre objet, qui est égal à a. La distinction surprend souvent ceux qui viennent d'autres langages. Dans Python, les variables sont des noms sur des objets, et non des noms d'espaces de stockage (la démarche est similaire avec Ruby, ou Self). On comprend mieux, si on continue le code : a[2]333 print a => [1,2,3333,4,5,6] print b => [1,2,3333,4,5,6] print c => [1,2,3,4,5,6]
Typiquement Python? :-)
PS> $a=(1,2) PS> $b=$a PS> $a[0]=3 PS> $b 3 2
Par contre, "typiquement .Net" (?):
PS> $a+=4 PS> $a 3 2 4 PS> $b 3 2
En effet, l'ajout d'un élément à un objet de la classe Array crèe une copie de l'objet. La copie "casse" donc le lien précédemment établi.
Pour "cooommmandelletteeeeee" ce n'était pas pour se moquer, mais pour donner un peu plus de vie au message....
Pas de souci. Ca passe sans doute mieux avé l'acent.
Pour "cet hiver, au coin de la cheminée ?", avec l'arrivée de Vista, j'ai comme un doute...
Mouais. En interne, le "choc" sera déjà passé. Le déploiement en est à environ 17000 postes à l'heure actuelle, c'est surtout l'automne qui sera chaud avec vraisemblablement un déploiement général à la rentrée. Mais même là, ça ne me concernera pas directement (à part la mise à jour ou la réinstallation de mon propre poste, bien sûr).
Bonne journée (malgré la chaleur).
En effet, grosse chaleur aujourd'hui. Je plains ceux qui sont dans la région de Nîmes où on annonce 36° pour demain.
Merci en tout cas pour ce petit cours sur Python. Vivement l'hiver :-)
Jacques
"Méta-MCI" <enleverlesX.XmcX@XmclaveauX.com> wrote in message
news:utYE86QnGHA.5096@TK2MSFTNGP03.phx.gbl...
<snip>
Mais ce n'est pas une simple syntaxe. Un slice est un objet. Par exemple,
on peut en faire un iterator :
a=[1,2,3,4,5,6]
g=iter(a[2:5])
print g.next() donne => 3
print g.next() donne => 4
print g.next() donne => 5
Intéressant. Il me semble que la classe IEnumerator fait à peu près la même
chose pour des objets de type Array, mais je n'ai jamais pratiqué.
On peut aussi appliquer une fonction à tous les éléments :
def fexemple(a):
return a*2
Intéressant aussi, mais ambigu car selon le type d'opération réalisée par la
fonction on peut vouloir l'appliquer à tout le tableau et pas simplement à
chacun des éléments. Par exemple, sous PowerShell la multiplication donne
ça:
PS> $a=(1,2)
PS> $a*2
1
2
1
2
Pour appliquer la multiplication à chaque élément on devra explicitement
énumérer les éléments, ce qui se fait simplement avec % (raccourci pour
foreach-object):
PS> $a | %{$_*2}
2
4
Et l'addition donnera ceci:
PS> $a+3
1
2
3
La même construction que ci-dessus sera nécessaire pour appliquer l'addition
à chaque élément:
PS> $a | %{$_+3}
4
5
Pour ma culture (j'ai la flemme de plonger dans les docs), comment fais-tu
les opérations ci-dessus en Python?
Dernier point (pour le fun), typiquement Python ; avec :
a=[1,2,3,4,5,6]
b=a
c=a[:]
on obtient b identique à a, alors que c est un autre objet, qui est égal à
a. La distinction surprend souvent ceux qui viennent d'autres langages.
Dans Python, les variables sont des noms sur des objets, et non des noms
d'espaces de stockage (la démarche est similaire avec Ruby, ou Self).
On comprend mieux, si on continue le code :
a[2]333
print a => [1,2,3333,4,5,6]
print b => [1,2,3333,4,5,6]
print c => [1,2,3,4,5,6]
Typiquement Python? :-)
PS> $a=(1,2)
PS> $b=$a
PS> $a[0]=3
PS> $b
3
2
Par contre, "typiquement .Net" (?):
PS> $a+=4
PS> $a
3
2
4
PS> $b
3
2
En effet, l'ajout d'un élément à un objet de la classe Array crèe une copie
de l'objet. La copie "casse" donc le lien précédemment établi.
Pour "cooommmandelletteeeeee" ce n'était pas pour se moquer, mais pour
donner un peu plus de vie au message....
Pas de souci. Ca passe sans doute mieux avé l'acent.
Pour "cet hiver, au coin de la cheminée ?", avec l'arrivée de Vista, j'ai
comme un doute...
Mouais. En interne, le "choc" sera déjà passé. Le déploiement en est à
environ 17000 postes à l'heure actuelle, c'est surtout l'automne qui sera
chaud avec vraisemblablement un déploiement général à la rentrée. Mais même
là, ça ne me concernera pas directement (à part la mise à jour ou la
réinstallation de mon propre poste, bien sûr).
Bonne journée (malgré la chaleur).
En effet, grosse chaleur aujourd'hui. Je plains ceux qui sont dans la région
de Nîmes où on annonce 36° pour demain.
Merci en tout cas pour ce petit cours sur Python. Vivement l'hiver :-)
Mais ce n'est pas une simple syntaxe. Un slice est un objet. Par exemple, on peut en faire un iterator : a=[1,2,3,4,5,6] g=iter(a[2:5]) print g.next() donne => 3 print g.next() donne => 4 print g.next() donne => 5
Intéressant. Il me semble que la classe IEnumerator fait à peu près la même chose pour des objets de type Array, mais je n'ai jamais pratiqué.
On peut aussi appliquer une fonction à tous les éléments : def fexemple(a): return a*2
Intéressant aussi, mais ambigu car selon le type d'opération réalisée par la fonction on peut vouloir l'appliquer à tout le tableau et pas simplement à chacun des éléments. Par exemple, sous PowerShell la multiplication donne ça:
PS> $a=(1,2) PS> $a*2 1 2 1 2
Pour appliquer la multiplication à chaque élément on devra explicitement énumérer les éléments, ce qui se fait simplement avec % (raccourci pour foreach-object):
PS> $a | %{$_*2} 2 4
Et l'addition donnera ceci:
PS> $a+3 1 2 3
La même construction que ci-dessus sera nécessaire pour appliquer l'addition à chaque élément:
PS> $a | %{$_+3} 4 5
Pour ma culture (j'ai la flemme de plonger dans les docs), comment fais-tu les opérations ci-dessus en Python?
Dernier point (pour le fun), typiquement Python ; avec : a=[1,2,3,4,5,6] b=a c=a[:] on obtient b identique à a, alors que c est un autre objet, qui est égal à a. La distinction surprend souvent ceux qui viennent d'autres langages. Dans Python, les variables sont des noms sur des objets, et non des noms d'espaces de stockage (la démarche est similaire avec Ruby, ou Self). On comprend mieux, si on continue le code : a[2]333 print a => [1,2,3333,4,5,6] print b => [1,2,3333,4,5,6] print c => [1,2,3,4,5,6]
Typiquement Python? :-)
PS> $a=(1,2) PS> $b=$a PS> $a[0]=3 PS> $b 3 2
Par contre, "typiquement .Net" (?):
PS> $a+=4 PS> $a 3 2 4 PS> $b 3 2
En effet, l'ajout d'un élément à un objet de la classe Array crèe une copie de l'objet. La copie "casse" donc le lien précédemment établi.
Pour "cooommmandelletteeeeee" ce n'était pas pour se moquer, mais pour donner un peu plus de vie au message....
Pas de souci. Ca passe sans doute mieux avé l'acent.
Pour "cet hiver, au coin de la cheminée ?", avec l'arrivée de Vista, j'ai comme un doute...
Mouais. En interne, le "choc" sera déjà passé. Le déploiement en est à environ 17000 postes à l'heure actuelle, c'est surtout l'automne qui sera chaud avec vraisemblablement un déploiement général à la rentrée. Mais même là, ça ne me concernera pas directement (à part la mise à jour ou la réinstallation de mon propre poste, bien sûr).
Bonne journée (malgré la chaleur).
En effet, grosse chaleur aujourd'hui. Je plains ceux qui sont dans la région de Nîmes où on annonce 36° pour demain.
Merci en tout cas pour ce petit cours sur Python. Vivement l'hiver :-)
Pour l'addition, deux façon de faire : print a+[3] #=> [1, 2, 3] print a.appennd(3) #=> [1, 2, 3]
Typiquement Python? :-)
En fait, je pense que le premier langage qui a introduit ce concept, c'est Lisp. Mais Python a repris ça en 1989 (c'était déjà dans ABC, le premier langage de Guido Van Rossum, le créateur de Python).
Par contre, "typiquement .Net" (?): PS> $a+=4 PS> $a 3 2 4 PS> $b 3 2 En effet, l'ajout d'un élément à un objet de la classe Array crèe une copie de l'objet. La copie "casse" donc le lien précédemment établi.
La, ça devient plus compliqué. Dans Python, il y a deux sortes d'objets : les objets mutables et les objets immutables. Toute opération appliquée à un objet imutable en crée un nouveau. Donc de façon similaiure à ce que tu décrit, on aura : a=3 b=a print a,b #=> 3,3 a+=1 print a,b #=> 4,3
Petit détail : j'ai décrit des objets de type "List", et non des array.
Les listes sont, elles, des objets mutables, que l'on peu considérer, à peu près, comme des listes de pointeurs sur d'autres objets. Et, donc, on n'a plus le même comportement. Cependant, on peut retrouver ça en utilisant des "Tuples" qui sont comme des listes, mais imutables.
D'ailleurs, le slice permet aussi de modifier une liste : a=[1,2,3,4,5,6] print a #=> [ 1, 2, 3, 4, 5, 6] a[1:5:2]=['A','B'] print a #=> [1, 'A', 3, 'B', 5, 6] a[1:5]=[222] print a #=> [1, 222, 6]
Et puis si ça ne convient pas, rien n'empêche de définir une classe héritant d'un type de base.
avé l'acent.
Quel accent ? Je n'ai pas d'accent. Ni l'accent parisien, ni l'accent belge.
Je plains ceux qui sont dans la région de Nîmes où on annonce 36°
Il a fait 35° à l'ombre aujourd'hui (pour 37° annoncés par météo-France). En pratique, on attend 51°, et on réagit avec quelques glaçons (dans le verre). D'ailleurs ça me remémore une certaine dette liquide...
Pour l'addition, deux façon de faire :
print a+[3] #=> [1, 2, 3]
print a.appennd(3) #=> [1, 2, 3]
Typiquement Python? :-)
En fait, je pense que le premier langage qui a introduit ce concept,
c'est Lisp. Mais Python a repris ça en 1989 (c'était déjà dans ABC, le
premier langage de Guido Van Rossum, le créateur de Python).
Par contre, "typiquement .Net" (?):
PS> $a+=4
PS> $a
3
2
4
PS> $b
3
2
En effet, l'ajout d'un élément à un objet de la classe Array crèe une copie
de l'objet. La copie "casse" donc le lien précédemment établi.
La, ça devient plus compliqué. Dans Python, il y a deux sortes d'objets :
les objets mutables et les objets immutables. Toute opération
appliquée à un objet imutable en crée un nouveau. Donc de façon
similaiure à ce que tu décrit, on aura :
a=3
b=a
print a,b #=> 3,3
a+=1
print a,b #=> 4,3
Petit détail : j'ai décrit des objets de type "List", et non des array.
Les listes sont, elles, des objets mutables, que l'on peu considérer, à
peu près, comme des listes de pointeurs sur d'autres objets. Et, donc,
on n'a plus le même comportement. Cependant, on peut retrouver ça en
utilisant des "Tuples" qui sont comme des listes, mais imutables.
D'ailleurs, le slice permet aussi de modifier une liste :
a=[1,2,3,4,5,6]
print a #=> [ 1, 2, 3, 4, 5, 6]
a[1:5:2]=['A','B']
print a #=> [1, 'A', 3, 'B', 5, 6]
a[1:5]=[222]
print a #=> [1, 222, 6]
Et puis si ça ne convient pas, rien n'empêche de définir une classe
héritant d'un type de base.
avé l'acent.
Quel accent ? Je n'ai pas d'accent. Ni l'accent parisien, ni l'accent
belge.
Je plains ceux qui sont dans la région de Nîmes où on annonce 36°
Il a fait 35° à l'ombre aujourd'hui (pour 37° annoncés par
météo-France). En pratique, on attend 51°, et on réagit avec quelques
glaçons (dans le verre).
D'ailleurs ça me remémore une certaine dette liquide...
Pour l'addition, deux façon de faire : print a+[3] #=> [1, 2, 3] print a.appennd(3) #=> [1, 2, 3]
Typiquement Python? :-)
En fait, je pense que le premier langage qui a introduit ce concept, c'est Lisp. Mais Python a repris ça en 1989 (c'était déjà dans ABC, le premier langage de Guido Van Rossum, le créateur de Python).
Par contre, "typiquement .Net" (?): PS> $a+=4 PS> $a 3 2 4 PS> $b 3 2 En effet, l'ajout d'un élément à un objet de la classe Array crèe une copie de l'objet. La copie "casse" donc le lien précédemment établi.
La, ça devient plus compliqué. Dans Python, il y a deux sortes d'objets : les objets mutables et les objets immutables. Toute opération appliquée à un objet imutable en crée un nouveau. Donc de façon similaiure à ce que tu décrit, on aura : a=3 b=a print a,b #=> 3,3 a+=1 print a,b #=> 4,3
Petit détail : j'ai décrit des objets de type "List", et non des array.
Les listes sont, elles, des objets mutables, que l'on peu considérer, à peu près, comme des listes de pointeurs sur d'autres objets. Et, donc, on n'a plus le même comportement. Cependant, on peut retrouver ça en utilisant des "Tuples" qui sont comme des listes, mais imutables.
D'ailleurs, le slice permet aussi de modifier une liste : a=[1,2,3,4,5,6] print a #=> [ 1, 2, 3, 4, 5, 6] a[1:5:2]=['A','B'] print a #=> [1, 'A', 3, 'B', 5, 6] a[1:5]=[222] print a #=> [1, 222, 6]
Et puis si ça ne convient pas, rien n'empêche de définir une classe héritant d'un type de base.
avé l'acent.
Quel accent ? Je n'ai pas d'accent. Ni l'accent parisien, ni l'accent belge.
Je plains ceux qui sont dans la région de Nîmes où on annonce 36°
Il a fait 35° à l'ombre aujourd'hui (pour 37° annoncés par météo-France). En pratique, on attend 51°, et on réagit avec quelques glaçons (dans le verre). D'ailleurs ça me remémore une certaine dette liquide...
-- @-salutations
Michel Claveau
Jacques Barathon [MS]
"Jacques Barathon [MS]" wrote in message news:
"Méta-MCI" wrote in message news: <snip>
Mais ce n'est pas une simple syntaxe. Un slice est un objet. Par exemple, on peut en faire un iterator : a=[1,2,3,4,5,6] g=iter(a[2:5]) print g.next() donne => 3 print g.next() donne => 4 print g.next() donne => 5
Intéressant. Il me semble que la classe IEnumerator fait à peu près la même chose pour des objets de type Array, mais je n'ai jamais pratiqué.
Petit retour d'expérience rapide, je viens de pratiquer ce matin:
Contrairement à Python (si j'en crois l'exemple ci-dessus), l'énumération se passe en deux temps: 1) On passe à l'élément suivant avec movenext() - si le résultat est True, c'est qu'il y a un élément suivant, sinon on a atteint la fin de la liste. 2) On accède à l'élément en cours avec current.
Si on veut revenir au début de la liste, on utilise reset().
Jacques
"Jacques Barathon [MS]" <jbaratho@online.microsoft.com> wrote in message
news:u6dcMQTnGHA.4240@TK2MSFTNGP02.phx.gbl...
"Méta-MCI" <enleverlesX.XmcX@XmclaveauX.com> wrote in message
news:utYE86QnGHA.5096@TK2MSFTNGP03.phx.gbl...
<snip>
Mais ce n'est pas une simple syntaxe. Un slice est un objet. Par exemple,
on peut en faire un iterator :
a=[1,2,3,4,5,6]
g=iter(a[2:5])
print g.next() donne => 3
print g.next() donne => 4
print g.next() donne => 5
Intéressant. Il me semble que la classe IEnumerator fait à peu près la
même chose pour des objets de type Array, mais je n'ai jamais pratiqué.
Petit retour d'expérience rapide, je viens de pratiquer ce matin:
Contrairement à Python (si j'en crois l'exemple ci-dessus), l'énumération se
passe en deux temps:
1) On passe à l'élément suivant avec movenext() - si le résultat est True,
c'est qu'il y a un élément suivant, sinon on a atteint la fin de la liste.
2) On accède à l'élément en cours avec current.
Si on veut revenir au début de la liste, on utilise reset().
Mais ce n'est pas une simple syntaxe. Un slice est un objet. Par exemple, on peut en faire un iterator : a=[1,2,3,4,5,6] g=iter(a[2:5]) print g.next() donne => 3 print g.next() donne => 4 print g.next() donne => 5
Intéressant. Il me semble que la classe IEnumerator fait à peu près la même chose pour des objets de type Array, mais je n'ai jamais pratiqué.
Petit retour d'expérience rapide, je viens de pratiquer ce matin:
Contrairement à Python (si j'en crois l'exemple ci-dessus), l'énumération se passe en deux temps: 1) On passe à l'élément suivant avec movenext() - si le résultat est True, c'est qu'il y a un élément suivant, sinon on a atteint la fin de la liste. 2) On accède à l'élément en cours avec current.
Si on veut revenir au début de la liste, on utilise reset().
Jacques
Méta-MCI
Salut !
Même s'il y a des ressemblances fonctionnelles, je pense qu'on parle (qu'on écrit, plutôt) de deux choses différentes.
Dans Python, les iterator/generator travaillent différemment. On n'a pas la possibilité de revenir au début, par exemple. Par contre, on peut travailler sur des listes infinies, sur des objets dont le suivant (next) est défini par code, ou dont le nombre d'éléments n'est pas connu. De la même manière on ne sait pas s'il y a un élément suivant, tant que l'on ne l'a pas appelé next(). S'il n'y a pas d'élément suivant, cela lève une exception. Et alors, on retombe sur la façon de gérer les exceptions, dont nous avons parlé il y a peu.
@+
MCI
Salut !
Même s'il y a des ressemblances fonctionnelles, je pense qu'on parle (qu'on
écrit, plutôt) de deux choses différentes.
Dans Python, les iterator/generator travaillent différemment. On n'a pas la
possibilité de revenir au début, par exemple.
Par contre, on peut travailler sur des listes infinies, sur des objets dont
le suivant (next) est défini par code, ou dont le nombre d'éléments n'est
pas connu.
De la même manière on ne sait pas s'il y a un élément suivant, tant que l'on
ne l'a pas appelé next(). S'il n'y a pas d'élément suivant, cela lève une
exception. Et alors, on retombe sur la façon de gérer les exceptions, dont
nous avons parlé il y a peu.
Même s'il y a des ressemblances fonctionnelles, je pense qu'on parle (qu'on écrit, plutôt) de deux choses différentes.
Dans Python, les iterator/generator travaillent différemment. On n'a pas la possibilité de revenir au début, par exemple. Par contre, on peut travailler sur des listes infinies, sur des objets dont le suivant (next) est défini par code, ou dont le nombre d'éléments n'est pas connu. De la même manière on ne sait pas s'il y a un élément suivant, tant que l'on ne l'a pas appelé next(). S'il n'y a pas d'élément suivant, cela lève une exception. Et alors, on retombe sur la façon de gérer les exceptions, dont nous avons parlé il y a peu.
@+
MCI
Jacques Barathon [MS]
"Méta-MCI" wrote in message news:%
Salut !
Même s'il y a des ressemblances fonctionnelles, je pense qu'on parle (qu'on écrit, plutôt) de deux choses différentes.
Dans Python, les iterator/generator travaillent différemment. On n'a pas la possibilité de revenir au début, par exemple. Par contre, on peut travailler sur des listes infinies, sur des objets dont le suivant (next) est défini par code, ou dont le nombre d'éléments n'est pas connu. De la même manière on ne sait pas s'il y a un élément suivant, tant que l'on ne l'a pas appelé next(). S'il n'y a pas d'élément suivant, cela lève une exception. Et alors, on retombe sur la façon de gérer les exceptions, dont nous avons parlé il y a peu.
Pas sûr de voir la différence fondamentale, mais ce n'est pas grave. Je mets ça de côté pour cet hiver :-)
A+ Jacques
"Méta-MCI" <enleverlesX.XmcX@XmclaveauX.com> wrote in message
news:%23Ak4D2cnGHA.4728@TK2MSFTNGP05.phx.gbl...
Salut !
Même s'il y a des ressemblances fonctionnelles, je pense qu'on parle
(qu'on écrit, plutôt) de deux choses différentes.
Dans Python, les iterator/generator travaillent différemment. On n'a pas
la possibilité de revenir au début, par exemple.
Par contre, on peut travailler sur des listes infinies, sur des objets
dont le suivant (next) est défini par code, ou dont le nombre d'éléments
n'est pas connu.
De la même manière on ne sait pas s'il y a un élément suivant, tant que
l'on ne l'a pas appelé next(). S'il n'y a pas d'élément suivant, cela lève
une exception. Et alors, on retombe sur la façon de gérer les exceptions,
dont nous avons parlé il y a peu.
Pas sûr de voir la différence fondamentale, mais ce n'est pas grave. Je mets
ça de côté pour cet hiver :-)
Même s'il y a des ressemblances fonctionnelles, je pense qu'on parle (qu'on écrit, plutôt) de deux choses différentes.
Dans Python, les iterator/generator travaillent différemment. On n'a pas la possibilité de revenir au début, par exemple. Par contre, on peut travailler sur des listes infinies, sur des objets dont le suivant (next) est défini par code, ou dont le nombre d'éléments n'est pas connu. De la même manière on ne sait pas s'il y a un élément suivant, tant que l'on ne l'a pas appelé next(). S'il n'y a pas d'élément suivant, cela lève une exception. Et alors, on retombe sur la façon de gérer les exceptions, dont nous avons parlé il y a peu.
Pas sûr de voir la différence fondamentale, mais ce n'est pas grave. Je mets ça de côté pour cet hiver :-)
A+ Jacques
---DGI972---
Michel Claveau a exposé le 01/07/2006 :
Pardon, je voulais écrire %* bien sûr.
Merci encore à gilles et a michel, cela fonctionne. J'ai imprimé l'aide for /? j'ai de la lecture pour les grandes vacances.
cordialement
Michel Claveau a exposé le 01/07/2006 :
Pardon, je voulais écrire %* bien sûr.
Merci encore à gilles et a michel, cela fonctionne.
J'ai imprimé l'aide for /?
j'ai de la lecture pour les grandes vacances.