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 :

[pickle] .dump : souci de base sur l'utilisation de la fonction


Sujet :

Python

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 3
    Par défaut [pickle] .dump : souci de base sur l'utilisation de la fonction
    Bonjour à tous, et merci d'avance aux bonnes âmes qui voudront bien me dire où j'ai raté un épisode...
    J'apprends le Python depuis peu et je suis à la lettre, en adoptant les petites nouveautés de Python 3, le tuto de Gérard Swinnen, Apprendre à programmer avec Python (si vous voulez voir ce que ça donne, c'est P.118), en plus d'accéder régulièrement à de la doc en ligne.
    Décidément, je ne vois vraiment pas ce qui peut clocher dans ma syntaxe lors de l'appel de la fonction pickle.dump . J'essaie de dumper des données dans un fichier, et quelle que soit la manière de tourner la chose, y a pas, c'est un même message d'erreur. Je vous donne un exemple pour poser le problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    >>> import pickle
    >>> from os import chdir
    >>> chdir('c:\programmes\python')
    >>> a=2
    >>> f=open('MonFichier.py','w')
    >>> pickle.dump(a,f)
    Traceback (most recent call last):
      File "<pyshell#58>", line 1, in <module>
        pickle.dump(a,f)
      File "C:\Python31\lib\pickle.py", line 1354, in dump
        Pickler(file, protocol, fix_imports=fix_imports).dump(obj)
    TypeError: must be str, not bytes
    >>>
    Y a-t-il une nouvelle syntaxe de pickle depuis Python 3 ? Qu'est-ce qui peut bien être faux dans une suite d'instructions aussi courte ?..

    Merci pour votre aide et votre patience auprès d'un néophyte comme moi
    Bien à vous tous.
    mian

  2. #2
    Membre Expert Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Par défaut
    Bonjour,

    apparement le module pickle a evolué.

    Tu devrais réussir en ouvrant ton fichier en mode binaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    >>> f=open('MonFichier.py','wb')
    de plus, je te deconseille d'utiliser l'extension .py pour ce type de fichier.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 3
    Par défaut
    Merci pour ton aide ! Jusque là, c'est vrai, la commande passe. Mais dès l'étape suivante avec la fonction load, ça bloque...
    Avant de potasser toute la doc sur pickle (ce que je ferai si j'arrive à me convaincre que c'est une étape nécessaire), je me permets de poser une question sans doute essentielle : autant que je sache, pickle est une sorte de voie royale pour gérer le stockage intelligent des données dans un fichier. A en juger par ta réponse, ce n'est sans doute pas le cas. Mais alors, si ce n'est pas avec pickle qu'on le fait habituellement, y a-t-il un module équivalent, ou des méthodes standard pour éviter de se prendre trop la tête lorsqu'on veut inscrire des données dans un fichier ? Pourrait-on m'indiquer la doc correspondante, le cas échéant ?

    Merkiiiii !

  4. #4
    Membre Expert Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Par défaut
    autant que je sache, pickle est une sorte de voie royale pour gérer le stockage intelligent des données dans un fichier. A en juger par ta réponse, ce n'est sans doute pas le cas.
    Je n'ai pas dis ça, ni son contraire d'ailleurs...

    pickle est très bien, il permet de conserver le type des données que tu sauvegardes; Il a des limitations (pas de gestion de l'heritage des classes par exemple, usage restreint à des programmes de confiance,...) mais qui ne sont pas bloquantes pour un usage basique.

    au final, tout dépend de ton besoin.

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 3
    Par défaut
    OK, merci à toi, et bonne continuation !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Créer un warning sur l'utilisation d'une fonction PHP
    Par Gwen_59 dans le forum Langage
    Réponses: 7
    Dernier message: 14/05/2013, 15h09
  2. aide sur l'utilisation d'une fonction d'objet
    Par ssaidof dans le forum Débuter
    Réponses: 1
    Dernier message: 31/12/2010, 05h24
  3. [Toutes versions] Questions de base sur l'utilisation de Word.
    Par Tamzoro dans le forum Word
    Réponses: 2
    Dernier message: 08/09/2009, 18h20
  4. Réponses: 3
    Dernier message: 07/05/2009, 09h51
  5. Question de base sur l'utilisation de la fonction date()
    Par deaven dans le forum Langage SQL
    Réponses: 2
    Dernier message: 04/12/2005, 15h33

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