Python integer en string

Bonjour,

j'ai le code suivant :

a = 'component_noeuds1.txt'
d = 'temp1.txt'

fichier = open(d, "w")
fichier.close()

i=0
with open(a, "r") as f:
    for line in f.readlines():
        i = i + 1
        if "NO" in line:
            fichier = open(d, "a")
            str1=line + " " + str(i)
            fichier.write(str1)
            fichier.close()  

J'ai l'erreur suivante : TypeError: 'int' object is not callable

Je n'arrive pas à trouver pourquoi ça ne fonctionne pas j'espère que vous pourrez m'aider. Car si je n'appel pas i dans str1 tout fonctionne.

Cédric

6 réponses

  1. Bonjour

    Je ne suis pas sûr de comprendre
    c'est pour ça que le code est uniquement dans un seul *.py pour éliminer cette erreur là.


    Cela veut il dire que ton projet comprend plusieurs fichiers, et que potentiellement dans au moins un autre fichier tu as appelé une variable str? Dans ce cas, si la portée de cette variable est « globale » je ne pense pas que séparer les fichiers suffise à se prémunir.

    Ou alors cela veut il dire que tout ton programme est dans un seul fichier et que dans ce fichier tu n’as pas nommé de variable str?
    1. J'y avais pensé c'est pour ça que le code est uniquement dans un seul *.py pour éliminer cette erreur là.
      1. Oui

        j'ai essayé ça sur un site de code en ligne
        liste = ["Yes", "NO", "2", "NO", "NONO"]
        i=0
        for line in liste:
            i = i + 1
            if "NO" in line:
                str1=line + " " + str(i)
                print(str1)


        Et ça marche, peux tu essayé chez toi?
        1. Merci pour le commentaire le code doit être utilisable pour correction ^^
          1. Bonjour,

            en python, il y a un truc primordial: l'indentation.
            Or le site (comme beaucoup) supprime les espaces "inutiles", et y'a plus d'indentation donc comme tout site de codage qui se respecte, il y a un moyen d'y remèdier.
            https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

            Quand tu auras, reposté ton code utilisable, quelqu'un pourra te répondre.
            1. PS, tu peux modifier ton propre message pendant 1h