IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Enregistrer le resultat d'une fonction dans un fichier


Sujet :

Python

  1. #1
    Nouveau membre du Club Avatar de johntheripper
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2016
    Messages : 43
    Points : 33
    Points
    33
    Par défaut Enregistrer le resultat d'une fonction dans un fichier
    Bonsoir chers amis, jai un truc qui me chiffonne depuis ce matin, en fait je sais comment ouvrir,lire et ecrire dans un fichier ma methode la plus preferée est la syntaxe "with open", mais le probleme est que je veux ecrire le contenu d'une fonction dans le fichier que je cree voic un exemple pour plus d'eclaircissement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    def mafonction():
             #code a executer
             #code a executer
             #code a excuter
     
    with open("/opt/data.csv/", 'w') as outputfile:
                 outputfile.write(str(mafonctio))
    lorsque je lance le script cela me renvoi cette type d'erreur :
    TypeError: expected a string or other character buffer object

    lorsque j'essai de mettre la fonction dans une variable et j'essai de convertie la variable en string pour la mettre dans le 'with open' j'ai toujours la meme reponse,
    j'ai beson d'aide afin de mieux comprendre.. Merci Cordialement
    Au délà des codes de language, il y a la reflexion!

  2. #2
    Membre habitué
    Homme Profil pro
    Développeur backend (python)
    Inscrit en
    Mai 2014
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur backend (python)

    Informations forums :
    Inscription : Mai 2014
    Messages : 77
    Points : 138
    Points
    138
    Par défaut
    Quel est le type de données que ta fonction retourne? Je pense que c'est la première chose à vérifier.

    Et ensuite, tu ouvre un dossier dans ton open, fait attention au dernier '/'.

    Et enfin, ton fichier à l'air d'être un fichier CSV, pourquoi ne pas utiliser les librairies spécifiques à ce format de fichier?

  3. #3
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 813
    Points : 7 102
    Points
    7 102
    Par défaut
    Bonjour,

    write est une méthode recevant en paramètre une chaîne de caractère, ta fonction devra donc retourner... une chaîne de caractères !

    Son contenu doit donc être de cette forme,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    def fonction():
        # code
        # code
        return ma_chaine
    et pour reprendre le retour de cette fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        outputfile.write(fonction())
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  4. #4
    Nouveau membre du Club Avatar de johntheripper
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2016
    Messages : 43
    Points : 33
    Points
    33
    Par défaut
    en fait voici le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    #!/usr/bin/python
    # -*-coding:UTF-8 -*-
     
    import os,dns,dns.resolver,geocoder, socket, urllib
    from pierky.ipdetailscache import IPDetailsCache
     
    def contenu():
     
        try:
            name = socket.gethostbyname(QUERY['valeur'])  # Convert the site web name in address ip x.x.x.x
            cache = IPDetailsCache() #call the Class 'IPDetailsCache()'
            r = cache.GetIPInformation(name) #use the 'GetIPInformation()' methods
            print("<b>adresse IPV4</b> : {0}".format(name))  # show the website ip
     
            print("<br><br><br><b>ASN informations</b>:<br>") # show ASN informations
     
            for cle, valeur in r.items(): #select the items methods for show 'cle and valeur' values in boucle
              print cle,":",valeur
     
            print("<br><br><br><br><b>Localisation</b>:<br>")
     
            try:
                    i = geocoder.maxmind(name)
                    a = i.json
                    for local, loac in a.items():
                        print local,":",loac
            except:
                   print ("Donnees de localisation non trouve"
                          "<br>Veuillez ressayer <a href='/audit'>ici</a> SVP!")
     
            print("<br><br><br><br><b>Mails Server</b>:<br>")
     
            try:
                reponse = dns.resolver.query((QUERY['valeur']), 'MX')  #the variable 'reponse' contains the value MX of dns server
                for rdata in reponse:
                  print"mail server:", (rdata.exchange)  # show the server mail
            except:
                print ("Aucun serveur Mail trouve"
                       "<br>Veuillez ressayer <a href='/audit'>ici</a> SVP!")
     
            print("<br><br><br><br><b>Dns Server</b>:<br>")
     
            contenu = dns.resolver.query((QUERY['valeur']), 'NS')  # the variable 'contenu' contains the value NS of dns server
            for resultat in contenu:
               print"seveurs DNS:", (resultat)  # show all name servers dns
     
            print("<br><br><br><b>Whois gathering</b>:<br>")
     
            try:
                command = "whois" + " " + (QUERY['valeur'])
                process = os.popen(command)
                results = str(process.read())
                print results
            except:
                print ("Aucun serveur Whois trouve"
                       "<br>Veuillez ressayer <a href='/audit'>ici</a> SVP!")
     
     
        except socket.gaierror:
            print("Connexion echoue, URL non valide ou verifier votre configuration reseau<br>"
                  "<br>Veuillez entrer une URL valide <a href='/audit'>ici</a> SVP!")
     
        print("<p>"
              "<center><input type = 'submit' style='background-color: #34C924;' style='text-align: center;' "
              "style='font-weight: bold;' value = 'TELECHARGER'"
              "style='width:120px; height:50px'> </center>"
              "</p>")
     
    def save_file():
        with open ("/opt/data.csv", "w") as f:
            txt = (QUERY['valeur'])
            source = urllib.urlopen("http://127.0.0.1:4080/findme.py?valeur={0}".format(txt))
            f.write(source.read())
    contenu()
    save_file()
    je travaille avec Karrigell mon seul but est que lorsque les resultas s'afffiche sur la page html je veux que ce meme resultat s'enregistre dans le fichier 'data.csv' QUI EST CRÉE DANS LE REPERTOIRE OPT..
    comment proceder??
    Au délà des codes de language, il y a la reflexion!

  5. #5
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Citation Envoyé par johntheripper Voir le message
    je veux que ce meme resultat s'enregistre dans le fichier 'data.csv' QUI EST CRÉE DANS LE REPERTOIRE OPT..
    comment proceder??
    Pourquoi ne pas commencer par modifier la fonction contenu pour qu'elle retourne ce résultat?

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  6. #6
    Nouveau membre du Club Avatar de johntheripper
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2016
    Messages : 43
    Points : 33
    Points
    33
    Par défaut
    En fait j'ai utilisé une methode assez simple et basique en faisant un click droit de la souris pour enregister le fichier sus forme de csv mais je veux une maniere pro avec un buton..
    si je modifi le contenu de ma fonction contenu(), mon script ne marche pas, comment retourner des valeurs alors??
    Au délà des codes de language, il y a la reflexion!

  7. #7
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Citation Envoyé par johntheripper Voir le message
    si je modifi le contenu de ma fonction contenu(), mon script ne marche pas, comment retourner des valeurs alors??
    Avec l'instruction "return" ?

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  8. #8
    Nouveau membre du Club Avatar de johntheripper
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2016
    Messages : 43
    Points : 33
    Points
    33
    Par défaut
    oui effectivement, si je ne demande pas trop j'aimerais que tu mettes sur la voie..
    Au délà des codes de language, il y a la reflexion!

  9. #9
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Citation Envoyé par johntheripper Voir le message
    oui effectivement, si je ne demande pas trop j'aimerais que tu mettes sur la voie..
    Si vous ne savez pas ce qu'est une fonction, il faut commencer par ouvrir un tuto. au chapitre fonctions.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. Concatener resultat d'une fonction dans une chaîne de caractére
    Par shimomura22 dans le forum Développement
    Réponses: 6
    Dernier message: 20/08/2015, 23h11
  2. resultat d'une requete dans un fichier SQLNET
    Par Poisson59 dans le forum Oracle
    Réponses: 1
    Dernier message: 01/03/2006, 16h14
  3. resultat d'une requete dans un fichier csv
    Par PAYASS59 dans le forum Requêtes
    Réponses: 1
    Dernier message: 21/09/2005, 21h14
  4. Enregistrer le resultat d'une requete dans un document texte
    Par nmerydem dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 15/07/2005, 12h32
  5. Enregistrer le résultat d'une requête dans un fichier Excel
    Par Isa31 dans le forum Bases de données
    Réponses: 4
    Dernier message: 24/05/2005, 14h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo