2011-08-11 6 views
5

je poste de mon code d'origine,TypeError: 'str' ne prend pas en charge l'interface tampon

crystal = open('vmises.dat','r') 
crystalincrement = pickle.load(crystal) 
crystaldir = pickle.load(crystal) 
crystalface = pickle.load(crystal) 
crystal.close() 

erreur est,

crystalincrement = pickle.load(crystal) 

TypeError: 'str' ne prend pas en charge l'interface tampon

i utilisation python V 3,2

Répondre

5

La question a été modifiée après l'affichage de ce document et son acceptation. La réponse à la question mise à jour est d'ouvrir le fichier en mode binaire:

crystal = open('vmises.dat', 'rb') 

Réponse à l'original, question de pré-édition:

Eh bien, data est une chaîne. L'objet sur lequel vous devez travailler est a.

a = open('data.txt','r') 
b = pickle.load(a) 
c = pickle.load(a) 
d = pickle.load(a) 
a.close() 

Pour pickle informations, voir le Python Wiki ou Python for Kids.

+9

Python pour les enfants? Aie. –

+4

Si quelqu'un a des problèmes avec les documents, cela ne sert à rien de les pointer ailleurs qui utilise le même langage pour décrire le document. Vous devez les pointer quelque part qui le décrira différemment. – agf

+2

Je suppose que nous devons être honnêtes à ce stade et admettre que nous sommes juste un service de moteur de recherche glorifié. –

0

Le module pickle charge un objet décapé, wh ich est une version sérialisée d'un objet Python. Ce code essaie de charger un ensemble de données sérialisé dans votre programme. Vous pouvez en savoir plus sur ce module ici: http://docs.python.org/library/pickle.html

Je ne sais pas où vous avez défini la data variable mais vous voulez probablement charger de la a variable, ce qui est le pointeur vers un fichier qui prend en cornichon ou renommez cette variable en data.

data = open('data.txt','r') 
b = pickle.load(data) 
c = pickle.load(data) 
d = pickle.load(data) 
data.close() 
+0

bonne réponse rapide! erreur typo désolé, j'ai édité. – coolcing

+0

Maintenant, vous essayez d'appeler '.close()' sur un objet qui n'existe pas. Quelle ligne renvoie spécifiquement l'erreur, dans quelle version de Python, at-elle une trace de pile? C'est toute l'information qui serait utile. –

15

La vraie réponse devrait être ouvrir le fichier en mode binaire dans Windows. open ('data.txt', 'rb')

Questions connexes