J'essaye d'analyser un fichier journal pour certaines occurrences. Comme le fichier journal peut être très volumineux, il est nécessaire de filtrer les lignes qui ne présentent aucun intérêt pour l'application dont nous avons besoin. l'idée était que je fasse une liste avec les 4 ou 5 chaînes que je veux rechercher, puis boucle sur les lignes dans une autre liste qui contient les lignes que j'ai conservées du fichier journal.Vérifier si un élément d'une liste est présent dans les éléments d'une liste en python
Le fichier journal est le journal d'un proxy et est utilisé pour obtenir une vue d'où viennent les demandes La première réduction a été facile en recherchant "GET /" dans la ligne et ne stockez que ceux qui ont cette dedans.
with open('logfile', 'r') as f:
for line in f:
if "GET /" in line:
lines.append(line)
La liste des besoins "lignes de puis être de réduire les lignes qui contiennent un d'un certain nombre de chaînes dans l'url
l1 = ['/Treintickets/aankopen', '/booking/Tickets', '/Acheter/Billets', ...]
J'ai essayé la compréhension de la liste, mais cela n'a pas fonctionné:
result = [l for l in lines if l1 in l]
Existe-t-il un moyen de faire fonctionner ceci sans avoir à boucler les grandes lignes de chaque membre de 'l1'?
Il n'y a que 4 ou 5 chaînes dans l1 et aucune ne se chevauchent, elles sont toutes identiques dans différentes langues. Quelle serait l'amélioration de la transformation en ensemble? – Erwin
Si vous utilisez la réponse de wim, cela ne sert à rien (j'ai un peu mal lu la question). –