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