next up previous contents
Next: Esempio: leggiamo una sequenza Up: Strutture dati disponibili in Previous: Dizionari   Indice

File: lettura e scrittura

Usualmante i dati e i programmi sono memorizzati per ulteriore utilizzo su memorie di massa, come dischi rigidi, CD ecc. Per fare ció si devono salvare i dati su file. Ovviamente abbiamo poi bisogno di rileggere o riscrivere i dati sullo stesso o altri file. La funzione open(filename, mode) ha come ritorno della chiamata un oggetto di tipo file, dove con filename identifichiamo il nome de file e con mode le modalità, che per esempio possono essere Ovviamente esiste la corrispondente funzione di chiusura dell'oggetto file, come metodo dell'oggetto, come le funzioni di lettura e scrittuta. Vediamo alcuni esempi
>>> f=open('p.txt','w') # open for writing
>>> dir(f)
['close', 'closed', 'fileno', 'flush', 'isatty', 'mode', 'name', 'read', 
'readinto', 'readline', 'readlines', 'seek', 'softspace', 'tell', 
'truncate', 'write', 'writelines', 'xreadlines']
>>> f.write('first line\n')
>>> f.write('second line\n')
>>> f.close() # close file
>>> f=open('p.txt','r') # open for reading
>>> for line in f.readlines():
...    print line
... 
first line

second line

>>> f.close() # close file
>>> f=open('p.txt','a') # open appending
>>> f.write('new line with a number ' + str(12.25)+'\n') 
>>> f.close()
>>> f=open('p.txt','r') # open for reading
>>> for line in f.readlines():
...    print line
... 
first line

second line

new line with a number 12.25
Di solito, specialmente per i file, è utile sapere se il file che stiamo tentando di aprire esiste, al fine di non proseguire in caso di errore. A tale scopo usiamo il costrutto try: except:, come nel caso
>>> f=open('p1.txt','r') # open for reading
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
IOError: [Errno 2] No such file or directory: 'p1.txt'
>>> def test_open_file(filename,mode): # define a test function
...     try:
...         f=open(filename,mode)
...     except:
...         f=None
...         print 'Error in file ',filename,'with mode',mode
...     return f
... 
>>> f=test_open_file('p.txt','r')
>>> f   
<open file 'p.txt', mode 'r' at 0x810f138>
>>> f.close()
>>> f=test_open_file('p1.txt','r')
Error in file  p1.txt with mode r
>>> f
>>>
Per un più approfondito utilizzo dei file si rimanda a www.python.org/doc/.



Subsections
next up previous contents
Next: Esempio: leggiamo una sequenza Up: Strutture dati disponibili in Previous: Dizionari   Indice
2004-11-02