Pour m'aider à apprendre les bases de python, je travaille sur un script qui lancera automatiquement un ticket d'assistance chaque fois qu'un nouvel errata du noyau RedHat est publié. Jusqu'à présent, je peux créer une liste de tous les errata, chacun sur sa propre ligne, sous la forme d'une variable à plusieurs lignes. J'espère pouvoir ensuite rechercher dans cette liste complète d'errata pour seulement les éléments qui ont 'kernel' dans la chaîne, et rétrécir la variable juste à ces résultats est là où j'ai des problèmes. Je peux essentiellement trouver toutes les correspondances pour 'kernel' mais plutôt que de retourner le match, il suffit de noter qu'une correspondance a été trouvée. Par exemple:Python re.search dans la boucle pour réduire les résultats
import re
import datetime
import urllib
from BeautifulSoup import BeautifulSoup
errata = 'http://rhn.redhat.com/errata/rhel-server-6-errata.html'
errata_data = urllib.urlopen(errata)
soup = BeautifulSoup(errata_data)
for syn in soup.findAll(attrs={'id' : re.compile("^synopsis")}):
for line in syn:
match = re.search("kernel", line, re.MULTILINE)
print match
... résultats dans « aucun » pour les lignes qui ne correspondent pas, et un pointeur de quelque sorte pour désigner quand il trouve une correspondance plutôt que d'imprimer la ligne qui correspond à:
None
None
<_sre.SRE_Match object at 0x3f0ed30>
None
None
None
Merci!
Que voulez-vous dire que vous voulez imprimer "la correspondance"? voulez-vous imprimer la ligne? –