Svp, aidez un noob en python
Kopros
Messages postés
631
Statut
Membre
-
pyschopathe Messages postés 2053 Statut Membre -
pyschopathe Messages postés 2053 Statut Membre -
Bonjour à tous,
Je suis en train d'apprendre le python en autodidacte (et c'est pas facile).
Là je galère sur une concaténation toute bête, mais je n'ai pas trouvé de réponse sur le net, c'est pourquoi je sollicite votre aide.
Voici mon tout premier script en python dans son ensemble :
Je l'explique :
J'ouvre un fichier log (pour le moment un test) et je lis chaque mot de ce fichier.
Je recherche le mot '0x80004005' qui correspond à une erreur. Je veux savoir combien de fois il y a l'erreur, donc combien de fois il y a '0x80004005'.
A la fin je tente de concaténer ma variable nbErr avec un message, et c'est là que le bas blesse, j'ai l'erreur suivante :
Donc en gros il me dit que je ne peux pas concaténer un nombre et du texte... J'ai essayé avec le signe % à la place du +, même erreur. Je n'ai rien trouvé d'autre.
Par ailleurs, j'ai un pb logique : il affiche tous les mots du fichier, la chaîne que je recherche est affichée 4 fois, or ma variable nbErr est à 3, je ne comprends pas pourquoi.
Merci de me venir en aide.
Je suis en train d'apprendre le python en autodidacte (et c'est pas facile).
Là je galère sur une concaténation toute bête, mais je n'ai pas trouvé de réponse sur le net, c'est pourquoi je sollicite votre aide.
Voici mon tout premier script en python dans son ensemble :
#!/usr/bin/python
import os
log = open('/home/mathieu/.VirtualBox/Machines/LAMP OK/Logs/test','r')
nbErr=0
for line in log :
list = line.split(" ")
for mot in list :
print mot
if (mot=="0x80004005") :
nbErr=nbErr+1
print nbErr + " fois l'erreur dans le fichier log."
Je l'explique :
J'ouvre un fichier log (pour le moment un test) et je lis chaque mot de ce fichier.
Je recherche le mot '0x80004005' qui correspond à une erreur. Je veux savoir combien de fois il y a l'erreur, donc combien de fois il y a '0x80004005'.
A la fin je tente de concaténer ma variable nbErr avec un message, et c'est là que le bas blesse, j'ai l'erreur suivante :
Traceback (most recent call last):
File "test.py", line 11, in <module>
print nbErr + " fois l'erreur dans le fichier log."
TypeError: unsupported operand type(s) for +: 'int' and 'str'
Donc en gros il me dit que je ne peux pas concaténer un nombre et du texte... J'ai essayé avec le signe % à la place du +, même erreur. Je n'ai rien trouvé d'autre.
Par ailleurs, j'ai un pb logique : il affiche tous les mots du fichier, la chaîne que je recherche est affichée 4 fois, or ma variable nbErr est à 3, je ne comprends pas pourquoi.
Merci de me venir en aide.
A voir également:
- Svp, aidez un noob en python
- Citizen code python - Accueil - Outils
- Ce programme est écrit en python il construit un mot secret ✓ - Forum Python
- Citizen code python solution - Forum Python
- Python est introuvable. exúcutez sans argument pour procúder ó l ✓ - Forum Python
- Python par la pratique : 101 exercices corrigés pdf - Forum Python
3 réponses
Pour ton problème de concaténation, il suffit de mettre
print str(nbErr) + " fois l'erreur dans le fichier log."Pour le problème d'incrémentation, tu es sûr que l'erreur apparaît bien quatre fois de la manière dont tu la cherches (c'est à dire séparée des autres mots par des espaces) ?
Salut,
réponse d'un autre noob (à tester) :
au lieu de : print nbErr + " fois l'erreur dans le fichier log." :
def rapport ( ) : nbErr + " fois l'erreur dans le fichier log."
A+
réponse d'un autre noob (à tester) :
au lieu de : print nbErr + " fois l'erreur dans le fichier log." :
def rapport ( ) : nbErr + " fois l'erreur dans le fichier log."
A+