Accademia:Input e Output: differenze tra le versioni

tolto "stub"
(tolto "stub")
 
(28 versioni intermedie di un altro utente non mostrate)
Riga 1: Riga 1:
{{Template:Acc_Menu_Python}}
{{Acc_Menu_Python}}
{{stub}}
== Input e Output su file di testo puro ==
== Input e Output su file di testo puro ==


Riga 38: Riga 37:
L'ultimo metodo richiamato è '''close()''', che chiude il collegamento al file prova.txt (è buona norma chiudere il collegamento al file al termine di ogni operazione)
L'ultimo metodo richiamato è '''close()''', che chiude il collegamento al file prova.txt (è buona norma chiudere il collegamento al file al termine di ogni operazione)


Adesso '''leggiamo''' il contentuo di prova.txt:
<pre>
>>> f = open('prova.txt','r')
>>> f.read()
'1° riga del mio file\n2° riga del mio file\n'
>>> f.seek(0)
0
>>> f.readline()
'1° riga del mio file\n'
>>> f.readline()
'2° riga del mio file\n'
>>> f.seek(0)
0
>>> f.readlines()
['1° riga del mio file\n', '2° riga del mio file\n']
>>> f.close()
</pre>
Analizzando il codice vediamo che per la lettura del file abbiamo usato 3 diversi metodi:
:'''read()''' restituisce una stringa con l'intero contenuto del file (compresi i i caratteri \n)
:'''readline()''' restituisce una stringa con l'intero contenuto di ogni riga
:'''readlines()''' restituisce una lista con tutte le righe
Da notare l'uso del metodo '''seek'''(''offset, from_what'') che permette di cambiare la posizione dell'oggetto all'interno del file. Ha due argomenti di cui solo il primo è obbligatorio:
:''offset'' - rappresenta il numero di byte (caratteri) da aggiungere al secondo argomento (from_what) in base alla posizione che vogliamo raggiungere all'interno del file
:''from_what'' - rappresenta il punto di inizio dello spostamento, '''0''' dall'inizio del file, '''1''' dalla posizione corrente, '''2''' dalla fine del file (valore di default 0)
Nel nostro caso '''seek(0)''' significa spostati di 0 byte dall' inizio del file (0)
Per conoscere la posizione attuale dell'oggetto, misurata in byte dall'inizio del file possiamo usare il metodo '''tell()'''.
'''aggiungiamo un'altra riga''' al nostro file:
<pre>
>>> f = open('prova.txt','a')
>>> f.write('3° riga del mio file\n')
21
>>> f.close()
</pre>
visualizziamo il nuovo contenuto:
<pre>
>>> f = open('prova.txt','r')
>>> print(f.read())
1° riga del mio file
2° riga del mio file
3° riga del mio file
</pre>




'''Riferimenti'''


* [http://docs.python.org/release/3.1.3/tutorial/inputoutput.html#reading-and-writing-files Reading and Writing files]
* [http://docs.python.org/release/3.1.3/library/functions.html#open Open method]




6 999

contributi