2012-04-17 2 views
5

Ho un compito a casa per una classe Python e sto correndo in un errore che non capisco. Esecuzione di Python v3.2.2 IDLE su Windows 7.AttributeError: l'oggetto 'tuple' non ha attributo 'write'

Sotto è dove il problema sta accadendo:

#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 

Questo è l'errore che sto ottenendo:

Traceback (most recent call last): File "I:\Cent 110\test.py", line 19, in openfile.write(item+'\n')
AttributeError: 'tuple' object has no attribute 'write'

+2

Si dovrebbe verificare la [ '' dichiarazione with''] (http://docs.python.org/reference/compound_stmts.html#the-with-statement) per aprire i file - ti significa don È necessario chiuderli manualmente e funzionare correttamente anche in caso di eccezioni. –

+0

@Lattyware: lo controllerò sicuramente. Grazie per l'input. – dhc

risposta

7

Stai perdendo il open.

openfile = open('test.txt','w') 

E alla fine ci sono parentesi manca quando si tenta di chiudere il file

openfile.close() 

Edit: Ho appena visto un altro problema.

openfile.write(str(cost)+'\n') 
+0

openfile = open ('test.txt', 'w') è lì. Grazie mille :) – dhc

+3

Il _open_ non è nel codice che hai postato. – Matthias

+0

Grazie per aver preso la parentesi finale. Completamente mancato. Tuttavia, ciò non ha risolto il mio problema. :( – dhc

Problemi correlati