AttributeError: 'tuple' objet n'a pas d'attribut "écrire"
J'ai un devoir maison pour un Python de la classe et je suis en cours d'exécution dans une erreur que je ne comprends pas. L'exécution de Python IDLE v3.2.2 sur Windows 7.
Ci-dessous est où le problème se produit:
#local variables
number=0
item=''
cost=''
#prompt user how many entries
number=int(input('\nHow many items to add?: '))
#open file
openfile=('test.txt','w')
#starts for loop to write new lines
for count in range(1,number+1):
print('\nFor item #',count,'.',sep='')
item=input('Name: ')
cost=float(input('Cost: $'))
#write to file
openfile.write(item+'\n')
openfile.write(cost+'\n')
#Display message and closes file
print('Records written to test.txt.',sep='')
openfile.close
C'est l'erreur que j'obtiens:
Traceback (most recent call last): File "I:\Cent 110\test.py", à la ligne 19, dans openfile.écrire(article+'\n')
AttributeError: 'tuple' objet n'a pas d'attribut "écriture"
Vous devriez vérifier le
Je vais certainement vérifier. Merci pour l'entrée.
with
de l'instruction pour l'ouverture de fichiers - cela signifie que vous n'avez pas de fermer manuellement, et fonctionne correctement même avec des exceptions.Je vais certainement vérifier. Merci pour l'entrée.
OriginalL'auteur dhc | 2012-04-17
Vous devez vous connecter pour publier un commentaire.
Vous êtes absent le ouvert.
Et à la fin il manque des parenthèses lorsque vous essayez de fermer le fichier
Modifier: je viens de voir un autre problème.
Le ouvrir n'est pas dans le code que vous avez posté.
Merci pour attraper la fin de la parenthèse. Complètement raté. Cependant, ça n'a pas réglé mon problème. 🙁
vous manquant de l'ouvrir. Regardez à nouveau votre code. C'est trivial pour spot - l'interprète vous indique quelle ligne l'erreur s'affiche. Tout ce que vous avez à faire est de se demander "qu'est-ce que
openfile
, et pourquoi ne pas avoir unwrite
attribut?". Pour ce faire, look (très!) à l'endroit où vous définissezopenfile
. Vous verrez que vous êtes absent de l'instruction open.Je suis si heureux que, pour la première fois j'ai pu donner un précieux réponse avant que quelqu'un d'autre ne le fait. 🙂
OriginalL'auteur Matthias