Forum >> Principianti >> problemi di salvataggio

Pagina: 1

Ciao,

ho un nuovo problema,
devo salvare un oggetto tipo:

x = [[1,2,3,4],[1,2,3,4]]

ma devo fare in modo che non compaiano ne le parentesi quadre ne le virgole, più ciascun elemento deve essere separato da uno spazio dal successivo, più devo andare a capo alla fine di ogni lista dentro la lista, cioè dovrebbe venire del tipo:

1 2 3 4
1 2 3 4

Ho provato con:

y=open('test.txt', 'w')
for i in x:

y.write(str(i)\n)

ma mi da errore credo perché \n funziona solo all'interno delle virgolette e comunque senza \n mi scrive sia le parentesi quadre che le virgole.
Potete aiutarmi?





Altra domanda, è normale che, usando IDLE, quello che scrivo compare nel file solo dopo che l'ho chiuso con y.close()?









--- Ultima modifica di tex_si in data 2015-10-14 12:42:06 ---
x = [[1,2,3,4],[1,2,3,4]]

ma devo fare in modo che non compaiano ne le parentesi quadre ne le virgole, più ciascun elemento deve essere separato da uno spazio dal successivo, più devo andare a capo alla fine di ogni lista dentro la lista, cioè dovrebbe venire del tipo:

1 2 3 4
1 2 3 4

Ho provato con:

y=open('test.txt', 'w')
for i in x:

y.write(str(i)\n)

ma mi da errore credo perché \n funziona solo all'interno delle virgolette e comunque senza \n mi scrive sia le parentesi quadre che le virgole.
Ti do degli indizi per risolvere il problema:
- per "eliminare" le parentesi e le virgole usa join
- per usare \n come vuoi tu, aggiungilo alla stringa col +"\n"

Ora hai tutto, aspetto di vedere la tua soluzione.

Cya
ho usato:

x=[[1,2,3,4],[1,2,3,4]]
f=open('ciao.txt','r+')
for i in x:
f.write(str(i)+'\n')

e ho ottenuto:

[1, 2, 3, 4]
[1, 2, 3, 4]

quindi bene.

Per join, ho trovato che è un metodo della funzione str() così ho digitato:
help(str.join) e ho ottenuto:

Help on method_descriptor:

join(...)
S.join(iterable) -> str

Return a string which is the concatenation of the strings in the
iterable. The separator between elements is S.

così ho provato a digitare:

str(',').join(str(x0))

ma ho ottenuto questo:

'[,1,,, ,2,,, ,3,,, ,4,]'

più altri esperimenti che non sto a postare.

Non è che potresti dirmi come si usa per ottenere il risultato che mi serve? :) :)
Grazie di tutto ovviamente. :)




--- Ultima modifica di tex_si in data 2015-10-14 15:35:08 ---
Non è che potresti dirmi come si usa per ottenere il risultato che mi serve? :) :)
Ciao caro, ti metto sulla strada giusta:
",".join((str(n) for n in [1,2,3,4]))
Ora hai praticamente tutto, non hai che da risolvere il problema e farci vedere il risultato.

Cya
>>> x=[[1,2,3,4],[1,2,3,4]]
>>> f=open('ciao.txt', 'w')
>>> for i in x:
f.write(' '.join(str(n) for n in i)+'\n')




8
8
>>> f.close()




di nuovo grazie mille. :)


Pagina: 1



Esegui il login per scrivere una risposta.