J'ai un fichier cvs que je charge et sur lequel je dois recuperer une partie des infos : 5 colonne de 40.000 lignes. Il s'agit des colonnes :
(row[0]), (row[1]), (row[7]), (row[16]), (row[17])
Depuis ce matin je me casse la tête pour mettre 5x40.000 données dans une matrice de 5x40.000 cases
Je pense peut etre encore trop en delphi, d'où mon incapacité à trouver la solution.
def main():
isRGCfileExist (RGCfilename)
#Ouvre le fichier à traiter
openRGCfile(RGCfilename)
...couic...
--
Travailler plus pour gagner plus pour quoi faire ?
Pour finir par divorcer parce qu'on est pas souvent à la maison ou faire un malaise vagal et creuser le trou de la sécu ?
# pour verifier si la liste de la colonne 3 est ok boucle =0 for list in myarray2: print myarray2[boucle] boucle=boucle+1
J'ai passé pas mal de temps dessus aujourd'hui et je suis HS.
Merci de ton aide. Grace à toi je vais pouvoir me coucher.
Me reste à regler le probleme de eclipse qui deconne alors que python en ligne de commande marche sans probleme avec ce script : An internal error has occurred. java.lang.ArrayIndexOutOfBoundsException
-- Travailler plus pour gagner plus pour quoi faire ? Pour finir par divorcer parce qu'on est pas souvent à la maison ou faire un malaise vagal et creuser le trou de la sécu ?
On 07 Aug 2010 22:25:53 GMT, yves <yves@free.invalid> wrote:
Le Sat, 07 Aug 2010 20:29:19 +0200, Baton Rouge a écrit:
Bonjour,
Depuis ce matin je me casse la tête pour mettre 5x40.000 données dans
une matrice de 5x40.000 cases
En python, le plus naturel dans ce cas, c'est sans doute une liste de
listes (array: pas naturel en Python. Ne fait pas partie du vocabulaire
normal.)
pourtant c'est essentiel, sinon il n'y aurai pas numpy.
import os
import csv
...couic...
def openRGCfile (RGCfilename):
myarray = [[None]*5]*40000
Inutile de prédimensionner.
Je ferais un truc du genre:
cr = csv.reader(file(RGCfilename), delimiter='t')
maListedeListes = []
for row in cr:
newRow = [row[0],row[1],row[7], row[16],row[17]]
maListedeListes.append(newRow)
print maListedeListes
Cool car je peux même y acceder individuelement par ligne et par colonne :
print maListedeListes[10000][2]
@+
J'ai contourné juste avant en faisant plusieurs liste mais j'aime pas trop. Ton exemple est bien meilleurs
# pour verifier si la liste de la colonne 3 est ok
boucle =0
for list in myarray2:
print myarray2[boucle]
boucle=boucle+1
J'ai passé pas mal de temps dessus aujourd'hui et je suis HS.
Merci de ton aide. Grace à toi je vais pouvoir me coucher.
Me reste à regler le probleme de eclipse qui deconne alors que python en ligne de commande marche sans probleme avec ce script :
An internal error has occurred.
java.lang.ArrayIndexOutOfBoundsException
--
Travailler plus pour gagner plus pour quoi faire ?
Pour finir par divorcer parce qu'on est pas souvent à la maison ou faire un malaise vagal et creuser le trou de la sécu ?
# pour verifier si la liste de la colonne 3 est ok boucle =0 for list in myarray2: print myarray2[boucle] boucle=boucle+1
J'ai passé pas mal de temps dessus aujourd'hui et je suis HS.
Merci de ton aide. Grace à toi je vais pouvoir me coucher.
Me reste à regler le probleme de eclipse qui deconne alors que python en ligne de commande marche sans probleme avec ce script : An internal error has occurred. java.lang.ArrayIndexOutOfBoundsException
-- Travailler plus pour gagner plus pour quoi faire ? Pour finir par divorcer parce qu'on est pas souvent à la maison ou faire un malaise vagal et creuser le trou de la sécu ?
Baton Rouge
On Sun, 08 Aug 2010 01:06:20 +0200, Baton Rouge wrote:
Je ferais un truc du genre:
cr = csv.reader(file(RGCfilename), delimiter='t') maListedeListes = [] for row in cr: newRow = [row[0],row[1],row[7], row[16],row[17]] maListedeListes.append(newRow)
print maListedeListes
Cool car je peux même y acceder individuelement par ligne et par colonne : print maListedeListes[10000][2]
J'suis ecoeuré tellement c'est simple au vu du temps passé dessus à consulter les tutos.
Encore merci. -- Travailler plus pour gagner plus pour quoi faire ? Pour finir par divorcer parce qu'on est pas souvent à la maison ou faire un malaise vagal et creuser le trou de la sécu ?
On Sun, 08 Aug 2010 01:06:20 +0200, Baton Rouge <nospam@poubelle.con>
wrote:
Je ferais un truc du genre:
cr = csv.reader(file(RGCfilename), delimiter='t')
maListedeListes = []
for row in cr:
newRow = [row[0],row[1],row[7], row[16],row[17]]
maListedeListes.append(newRow)
print maListedeListes
Cool car je peux même y acceder individuelement par ligne et par colonne :
print maListedeListes[10000][2]
J'suis ecoeuré tellement c'est simple au vu du temps passé dessus à
consulter les tutos.
Encore merci.
--
Travailler plus pour gagner plus pour quoi faire ?
Pour finir par divorcer parce qu'on est pas souvent à la maison ou faire un malaise vagal et creuser le trou de la sécu ?
On Sun, 08 Aug 2010 01:06:20 +0200, Baton Rouge wrote:
Je ferais un truc du genre:
cr = csv.reader(file(RGCfilename), delimiter='t') maListedeListes = [] for row in cr: newRow = [row[0],row[1],row[7], row[16],row[17]] maListedeListes.append(newRow)
print maListedeListes
Cool car je peux même y acceder individuelement par ligne et par colonne : print maListedeListes[10000][2]
J'suis ecoeuré tellement c'est simple au vu du temps passé dessus à consulter les tutos.
Encore merci. -- Travailler plus pour gagner plus pour quoi faire ? Pour finir par divorcer parce qu'on est pas souvent à la maison ou faire un malaise vagal et creuser le trou de la sécu ?
yves
Le Sun, 08 Aug 2010 01:06:20 +0200, Baton Rouge a écrit:
Bonjour,
# pour verifier si la liste de la colonne 3 est ok boucle =0 for list in myarray2: print myarray2[boucle] boucle=boucle+1
Quelques remarques: - il ne faut pas utiliser list comme nom de variable, en effet c'est un mot réservé de Python.
On s'expose sinon à de beaux bugs bien casse-têtes:
list("mot")
['m', 'o', 't']
list = "coucou" list("mot")
Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'str' object is not callable
- pour boucler sur myarray2, pas forcément besoin de compteur:
for elt in myarray2: print elt
Si elt est lui-même une liste (ou un tuple) à deux éléments:
for elt in myarray2: un, deux = elt print deux, un, un, deux
@+ -- Yves
Le Sun, 08 Aug 2010 01:06:20 +0200, Baton Rouge a écrit:
Bonjour,
# pour verifier si la liste de la colonne 3 est ok
boucle =0
for list in myarray2:
print myarray2[boucle]
boucle=boucle+1
Quelques remarques:
- il ne faut pas utiliser list comme nom de variable, en effet c'est un
mot réservé de Python.
On s'expose sinon à de beaux bugs bien casse-têtes:
list("mot")
['m', 'o', 't']
list = "coucou"
list("mot")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' object is not callable
- pour boucler sur myarray2, pas forcément besoin de compteur:
for elt in myarray2:
print elt
Si elt est lui-même une liste (ou un tuple) à deux éléments:
for elt in myarray2:
un, deux = elt
print deux, un, un, deux
Le Sun, 08 Aug 2010 01:06:20 +0200, Baton Rouge a écrit:
Bonjour,
# pour verifier si la liste de la colonne 3 est ok boucle =0 for list in myarray2: print myarray2[boucle] boucle=boucle+1
Quelques remarques: - il ne faut pas utiliser list comme nom de variable, en effet c'est un mot réservé de Python.
On s'expose sinon à de beaux bugs bien casse-têtes:
list("mot")
['m', 'o', 't']
list = "coucou" list("mot")
Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'str' object is not callable
- pour boucler sur myarray2, pas forcément besoin de compteur:
for elt in myarray2: print elt
Si elt est lui-même une liste (ou un tuple) à deux éléments:
for elt in myarray2: un, deux = elt print deux, un, un, deux
@+ -- Yves
Baton Rouge
On 08 Aug 2010 12:24:36 GMT, yves wrote:
Le Sun, 08 Aug 2010 01:06:20 +0200, Baton Rouge a écrit:
Bonjour,
# pour verifier si la liste de la colonne 3 est ok boucle =0 for list in myarray2: print myarray2[boucle] boucle=boucle+1
Quelques remarques: - il ne faut pas utiliser list comme nom de variable, en effet c'est un mot réservé de Python.
On s'expose sinon à de beaux bugs bien casse-têtes:
Je viens d'imprimer les mots reservé. Donc à l'avenir plus de probleme de ce côté là.
list("mot")
['m', 'o', 't']
list = "coucou" list("mot")
Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'str' object is not callable
- pour boucler sur myarray2, pas forcément besoin de compteur:
Au debut boucle etait là pour connaitre le numero d'index dans le for. Et finalement à force de chercher et modifier il s'est retrouver là.
for elt in myarray2: print elt
Si elt est lui-même une liste (ou un tuple) à deux éléments:
for elt in myarray2: un, deux = elt print deux, un, un, deux
@+
Bon à savoir
merci -- Travailler plus pour gagner plus pour quoi faire ? Pour finir par divorcer parce qu'on est pas souvent à la maison ou faire un malaise vagal et creuser le trou de la sécu ?
On 08 Aug 2010 12:24:36 GMT, yves <yves@free.invalid> wrote:
Le Sun, 08 Aug 2010 01:06:20 +0200, Baton Rouge a écrit:
Bonjour,
# pour verifier si la liste de la colonne 3 est ok
boucle =0
for list in myarray2:
print myarray2[boucle]
boucle=boucle+1
Quelques remarques:
- il ne faut pas utiliser list comme nom de variable, en effet c'est un
mot réservé de Python.
On s'expose sinon à de beaux bugs bien casse-têtes:
Je viens d'imprimer les mots reservé.
Donc à l'avenir plus de probleme de ce côté là.
list("mot")
['m', 'o', 't']
list = "coucou"
list("mot")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' object is not callable
- pour boucler sur myarray2, pas forcément besoin de compteur:
Au debut boucle etait là pour connaitre le numero d'index dans le for.
Et finalement à force de chercher et modifier il s'est retrouver là.
for elt in myarray2:
print elt
Si elt est lui-même une liste (ou un tuple) à deux éléments:
for elt in myarray2:
un, deux = elt
print deux, un, un, deux
@+
Bon à savoir
merci
--
Travailler plus pour gagner plus pour quoi faire ?
Pour finir par divorcer parce qu'on est pas souvent à la maison ou faire un malaise vagal et creuser le trou de la sécu ?
Le Sun, 08 Aug 2010 01:06:20 +0200, Baton Rouge a écrit:
Bonjour,
# pour verifier si la liste de la colonne 3 est ok boucle =0 for list in myarray2: print myarray2[boucle] boucle=boucle+1
Quelques remarques: - il ne faut pas utiliser list comme nom de variable, en effet c'est un mot réservé de Python.
On s'expose sinon à de beaux bugs bien casse-têtes:
Je viens d'imprimer les mots reservé. Donc à l'avenir plus de probleme de ce côté là.
list("mot")
['m', 'o', 't']
list = "coucou" list("mot")
Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'str' object is not callable
- pour boucler sur myarray2, pas forcément besoin de compteur:
Au debut boucle etait là pour connaitre le numero d'index dans le for. Et finalement à force de chercher et modifier il s'est retrouver là.
for elt in myarray2: print elt
Si elt est lui-même une liste (ou un tuple) à deux éléments:
for elt in myarray2: un, deux = elt print deux, un, un, deux
@+
Bon à savoir
merci -- Travailler plus pour gagner plus pour quoi faire ? Pour finir par divorcer parce qu'on est pas souvent à la maison ou faire un malaise vagal et creuser le trou de la sécu ?
Michel Claveau - MVP
Bonsoir !
Voilà un exemple simple et rapide, avec les listes en intention :
# -*- coding: utf-8 -*- import csv
def openRGCfile(RGCfilename): fileRGCopened = open(RGCfilename,"rb") cr = csv.reader(fileRGCopened, delimiter='t') return [[row[0],row[1],row[7],row[16],row[17]] for row in cr]
monarray = openRGCfile("totoRouge.txt")
@-salutations -- Michel Claveau
Bonsoir !
Voilà un exemple simple et rapide, avec les listes en intention :
# -*- coding: utf-8 -*-
import csv
def openRGCfile(RGCfilename):
fileRGCopened = open(RGCfilename,"rb")
cr = csv.reader(fileRGCopened, delimiter='t')
return [[row[0],row[1],row[7],row[16],row[17]] for row in cr]
Voilà un exemple simple et rapide, avec les listes en intention :
# -*- coding: utf-8 -*- import csv
def openRGCfile(RGCfilename): fileRGCopened = open(RGCfilename,"rb") cr = csv.reader(fileRGCopened, delimiter='t') return [[row[0],row[1],row[7],row[16],row[17]] for row in cr]
monarray = openRGCfile("totoRouge.txt")
@-salutations -- Michel Claveau
Baton Rouge
On Sun, 08 Aug 2010 20:59:18 +0200, "Michel Claveau - MVP" wrote:
Bonsoir !
Voilà un exemple simple et rapide, avec les listes en intention :
# -*- coding: utf-8 -*- import csv
def openRGCfile(RGCfilename): fileRGCopened = open(RGCfilename,"rb") cr = csv.reader(fileRGCopened, delimiter='t') return [[row[0],row[1],row[7],row[16],row[17]] for row in cr]
monarray = openRGCfile("totoRouge.txt")
@-salutations
Je vois que tu touches en python.
Même si ça marche, ta ligne "return" me parrait un peu "exotique". Je prefere developper en general.
De toute façon j'ai dejà mes data dans un xml.
Je suis épaté par la vitesse de lxml par rapport à xml.dom.minidom C'est au moins 20x plus rapide sur une base comme celle que je manipule. Je passe de 65 secondes à 3 secondes. Je comprend pas pourquoi lxml est pas intégré directement à python.
Par contre j'ai pas d'idée sur comme faire des recherche avec lxml sur les data. Par exemple comment faire des recherche pour trouver "vacances"
<note> <to>moi</to> <from>toi</from> <heading>mémo</heading> <body>C'est bientot les vacances</body> </note> <note> <to>lui</to> <from>elle</from> <heading>zut</heading> <body>C'est pas encore noel</body> </note>
-- Travailler plus pour gagner plus pour quoi faire ? Pour finir par divorcer parce qu'on est pas souvent à la maison ou faire un malaise vagal et creuser le trou de la sécu ?
On Sun, 08 Aug 2010 20:59:18 +0200, "Michel Claveau -
MVP"<enleverLesX_XXmcX@XmclavXeauX.com.invalid> wrote:
Bonsoir !
Voilà un exemple simple et rapide, avec les listes en intention :
# -*- coding: utf-8 -*-
import csv
def openRGCfile(RGCfilename):
fileRGCopened = open(RGCfilename,"rb")
cr = csv.reader(fileRGCopened, delimiter='t')
return [[row[0],row[1],row[7],row[16],row[17]] for row in cr]
monarray = openRGCfile("totoRouge.txt")
@-salutations
Je vois que tu touches en python.
Même si ça marche, ta ligne "return" me parrait un peu "exotique".
Je prefere developper en general.
De toute façon j'ai dejà mes data dans un xml.
Je suis épaté par la vitesse de lxml par rapport à xml.dom.minidom
C'est au moins 20x plus rapide sur une base comme celle que je
manipule. Je passe de 65 secondes à 3 secondes.
Je comprend pas pourquoi lxml est pas intégré directement à python.
Par contre j'ai pas d'idée sur comme faire des recherche avec lxml sur
les data.
Par exemple comment faire des recherche pour trouver "vacances"
<note>
<to>moi</to>
<from>toi</from>
<heading>mémo</heading>
<body>C'est bientot les vacances</body>
</note>
<note>
<to>lui</to>
<from>elle</from>
<heading>zut</heading>
<body>C'est pas encore noel</body>
</note>
--
Travailler plus pour gagner plus pour quoi faire ?
Pour finir par divorcer parce qu'on est pas souvent à la maison ou faire un malaise vagal et creuser le trou de la sécu ?
On Sun, 08 Aug 2010 20:59:18 +0200, "Michel Claveau - MVP" wrote:
Bonsoir !
Voilà un exemple simple et rapide, avec les listes en intention :
# -*- coding: utf-8 -*- import csv
def openRGCfile(RGCfilename): fileRGCopened = open(RGCfilename,"rb") cr = csv.reader(fileRGCopened, delimiter='t') return [[row[0],row[1],row[7],row[16],row[17]] for row in cr]
monarray = openRGCfile("totoRouge.txt")
@-salutations
Je vois que tu touches en python.
Même si ça marche, ta ligne "return" me parrait un peu "exotique". Je prefere developper en general.
De toute façon j'ai dejà mes data dans un xml.
Je suis épaté par la vitesse de lxml par rapport à xml.dom.minidom C'est au moins 20x plus rapide sur une base comme celle que je manipule. Je passe de 65 secondes à 3 secondes. Je comprend pas pourquoi lxml est pas intégré directement à python.
Par contre j'ai pas d'idée sur comme faire des recherche avec lxml sur les data. Par exemple comment faire des recherche pour trouver "vacances"
<note> <to>moi</to> <from>toi</from> <heading>mémo</heading> <body>C'est bientot les vacances</body> </note> <note> <to>lui</to> <from>elle</from> <heading>zut</heading> <body>C'est pas encore noel</body> </note>
-- Travailler plus pour gagner plus pour quoi faire ? Pour finir par divorcer parce qu'on est pas souvent à la maison ou faire un malaise vagal et creuser le trou de la sécu ?
Mickaël Wolff
Le 09/08/2010 00:01, Baton Rouge a écrit :
Même si ça marche, ta ligne "return" me parrait un peu "exotique". Je prefere developper en general.
Ce n'est pas exotique, c'est pythonique. C'est vrai qu'au premier abord c'est déroutant, mais finalement les ensembles (liste, générateurs, bientôt dictionnaires) de compréhension c'est très lisible.
Par contre j'ai pas d'idée sur comme faire des recherche avec lxml sur les data. Par exemple comment faire des recherche pour trouver "vacances"
from lxml import etree as parser f = open('notes.xml', 'rb') try: p = parser.parse(f) # search_string contient l'expression xpath qui va bien p.find(search_string) except parser.Error as e: print e
<note> <to>moi</to> <from>toi</from> <heading>mémo</heading> <body>C'est bientot les vacances</body> </note> <note> <to>lui</to> <from>elle</from> <heading>zut</heading> <body>C'est pas encore noel</body> </note>
À noter que le fichier XML est mal formé, puisqu'il y a plusieurs nœuds racines au document.
Même si ça marche, ta ligne "return" me parrait un peu "exotique".
Je prefere developper en general.
Ce n'est pas exotique, c'est pythonique. C'est vrai qu'au premier
abord c'est déroutant, mais finalement les ensembles (liste,
générateurs, bientôt dictionnaires) de compréhension c'est très lisible.
Par contre j'ai pas d'idée sur comme faire des recherche avec lxml sur
les data.
Par exemple comment faire des recherche pour trouver "vacances"
from lxml import etree as parser
f = open('notes.xml', 'rb')
try:
p = parser.parse(f)
# search_string contient l'expression xpath qui va bien
p.find(search_string)
except parser.Error as e:
print e
<note>
<to>moi</to>
<from>toi</from>
<heading>mémo</heading>
<body>C'est bientot les vacances</body>
</note>
<note>
<to>lui</to>
<from>elle</from>
<heading>zut</heading>
<body>C'est pas encore noel</body>
</note>
À noter que le fichier XML est mal formé, puisqu'il y a plusieurs
nœuds racines au document.
Même si ça marche, ta ligne "return" me parrait un peu "exotique". Je prefere developper en general.
Ce n'est pas exotique, c'est pythonique. C'est vrai qu'au premier abord c'est déroutant, mais finalement les ensembles (liste, générateurs, bientôt dictionnaires) de compréhension c'est très lisible.
Par contre j'ai pas d'idée sur comme faire des recherche avec lxml sur les data. Par exemple comment faire des recherche pour trouver "vacances"
from lxml import etree as parser f = open('notes.xml', 'rb') try: p = parser.parse(f) # search_string contient l'expression xpath qui va bien p.find(search_string) except parser.Error as e: print e
<note> <to>moi</to> <from>toi</from> <heading>mémo</heading> <body>C'est bientot les vacances</body> </note> <note> <to>lui</to> <from>elle</from> <heading>zut</heading> <body>C'est pas encore noel</body> </note>
À noter que le fichier XML est mal formé, puisqu'il y a plusieurs nœuds racines au document.
On Mon, 09 Aug 2010 03:23:35 +0100, Mickaël Wolff wrote:
Le 09/08/2010 00:01, Baton Rouge a écrit :
Même si ça marche, ta ligne "return" me parrait un peu "exotique". Je prefere developper en general.
Ce n'est pas exotique, c'est pythonique.
C'est monté python ? -- Travailler plus pour gagner plus pour quoi faire ? Pour finir par divorcer parce qu'on est pas souvent à la maison ou faire un malaise vagal et creuser le trou de la sécu ?
On Mon, 09 Aug 2010 03:23:35 +0100, Mickaël Wolff
<mickael.wolff@laposte.net> wrote:
Le 09/08/2010 00:01, Baton Rouge a écrit :
Même si ça marche, ta ligne "return" me parrait un peu "exotique".
Je prefere developper en general.
Ce n'est pas exotique, c'est pythonique.
C'est monté python ?
--
Travailler plus pour gagner plus pour quoi faire ?
Pour finir par divorcer parce qu'on est pas souvent à la maison ou faire un malaise vagal et creuser le trou de la sécu ?
On Mon, 09 Aug 2010 03:23:35 +0100, Mickaël Wolff wrote:
Le 09/08/2010 00:01, Baton Rouge a écrit :
Même si ça marche, ta ligne "return" me parrait un peu "exotique". Je prefere developper en general.
Ce n'est pas exotique, c'est pythonique.
C'est monté python ? -- Travailler plus pour gagner plus pour quoi faire ? Pour finir par divorcer parce qu'on est pas souvent à la maison ou faire un malaise vagal et creuser le trou de la sécu ?
Baton Rouge
On Mon, 09 Aug 2010 03:23:35 +0100, Mickaël Wolff wrote:
Par contre j'ai pas d'idée sur comme faire des recherche avec lxml sur les data. Par exemple comment faire des recherche pour trouver "vacances"
from lxml import etree as parser f = open('notes.xml', 'rb') try: p = parser.parse(f) # search_string contient l'expression xpath qui va bien p.find(search_string) except parser.Error as e: print e
ok merci, je vais essayer ça.
<note> <to>moi</to> <from>toi</from> <heading>mémo</heading> <body>C'est bientot les vacances</body> </note> <note> <to>lui</to> <from>elle</from> <heading>zut</heading> <body>C'est pas encore noel</body> </note>
À noter que le fichier XML est mal formé, puisqu'il y a plusieurs n½uds racines au document.
c'est un extrait d'un xml.
En quoi c'est problematique d'avoir plusieurs noeud racine ? Si on regarde un noeud racine c'est pas different d'un child et il peut y avoir plusieurs child dans un noeud racine. Ai je loupé quelque chose ?
-- Travailler plus pour gagner plus pour quoi faire ? Pour finir par divorcer parce qu'on est pas souvent à la maison ou faire un malaise vagal et creuser le trou de la sécu ?
On Mon, 09 Aug 2010 03:23:35 +0100, Mickaël Wolff
<mickael.wolff@laposte.net> wrote:
Par contre j'ai pas d'idée sur comme faire des recherche avec lxml sur
les data.
Par exemple comment faire des recherche pour trouver "vacances"
from lxml import etree as parser
f = open('notes.xml', 'rb')
try:
p = parser.parse(f)
# search_string contient l'expression xpath qui va bien
p.find(search_string)
except parser.Error as e:
print e
ok merci, je vais essayer ça.
<note>
<to>moi</to>
<from>toi</from>
<heading>mémo</heading>
<body>C'est bientot les vacances</body>
</note>
<note>
<to>lui</to>
<from>elle</from>
<heading>zut</heading>
<body>C'est pas encore noel</body>
</note>
À noter que le fichier XML est mal formé, puisqu'il y a plusieurs
n½uds racines au document.
c'est un extrait d'un xml.
En quoi c'est problematique d'avoir plusieurs noeud racine ?
Si on regarde un noeud racine c'est pas different d'un child et il
peut y avoir plusieurs child dans un noeud racine.
Ai je loupé quelque chose ?
--
Travailler plus pour gagner plus pour quoi faire ?
Pour finir par divorcer parce qu'on est pas souvent à la maison ou faire un malaise vagal et creuser le trou de la sécu ?
from lxml import etree as parser f = open('notes.xml', 'rb') try: p = parser.parse(f) # search_string contient l'expression xpath qui va bien p.find(search_string) except parser.Error as e: print e
ok merci, je vais essayer ça.
<note> <to>moi</to> <from>toi</from> <heading>mémo</heading> <body>C'est bientot les vacances</body> </note> <note> <to>lui</to> <from>elle</from> <heading>zut</heading> <body>C'est pas encore noel</body> </note>
À noter que le fichier XML est mal formé, puisqu'il y a plusieurs n½uds racines au document.
c'est un extrait d'un xml.
En quoi c'est problematique d'avoir plusieurs noeud racine ? Si on regarde un noeud racine c'est pas different d'un child et il peut y avoir plusieurs child dans un noeud racine. Ai je loupé quelque chose ?
-- Travailler plus pour gagner plus pour quoi faire ? Pour finir par divorcer parce qu'on est pas souvent à la maison ou faire un malaise vagal et creuser le trou de la sécu ?