A Byte of Python

Chapter 12. Entrada/Sortida

Table of Contents

Fitxers
Ús dels fitxers
Pickle
Pickling i Unpickling
Resum

Sovint necessitem que els nostres programes interaccionin amb l'usuari. Voldrem obtenir respostes de l'usuari i escriure-li resultats. Python ens ofereix les sentències raw_input i print. Per a sortida, disposem d'altres mètodes de la classe string (str). Per exemple, podem fer servir el mètode rjust que ens retorna el string justificat a la dreta amb una amplada donada. Tindrem més detalls amb help(str).

Un altre tipus habitual d'entrada/sortida és el tractament de fitxers. Per a molts programes és essencial poder crear, llegir i escriure fitxers. Ho estudiarem a aquest capítol.

Fitxers

Per usar fitxers en lectura o escriptura, cal crear un objecte de la classe file especificant el mode, i usar els mètodes read, readline o write. Quan acabem de fer servir el fitxer, cal tancar-ho amb el mètode close.

Ús dels fitxers

Example 12.1. Ús dels fitxers

				
#!/usr/bin/python
# Filename: using_file.py

poem = '''\
Programming is fun
When the work is done
if you wanna make your work also fun:
	use Python!
'''

f = file('poem.txt', 'w') # obrim per escriptura ('w'riting)
f.write(poem) # escrivim al fitxer el poema
f.close() # tanquem el fitxer

f = file('poem.txt') # quan no s'especifica el mode, es suposa que és lectura ('r'ead)
while True:
	line = f.readline()
	if len(line) == 0: # la longitud zero indica fi del fitxer (EOF)
		break
	print line, # Atenció amb la coma per evitar el salt de línia automàtic
f.close() # tanquem el fitxer
				
				

Sortida

				
$ python using_file.py
Programming is fun
When the work is done
if you wanna make your work also fun:
        use Python!
				
				

Com funciona

Primer de tot el programa crea una instància de la classe file especificant el nom del fitxer que volem obrir i el mode (escriptura) en que el volem obrir. El mode pot ser per lectura ('r'), per escriptura ('w') o per afegir ('a'). En realitat n'hi ha d'altres modes disponibles que podem consultar amb help(file).

Obrim el fitxer en mode escriptura i hi escrivim amb el mètode write de la classe file. Finalment tanquem el fitxer amb close.

A continuació, obrim un altre cop el fitxer. Com que no especifiquem el mode, Python per defecte l'obre per lectura. Llegim cada línia del fitxer amb el mètode readline. Aquest mètode retorna una línia completa incloent el caràcter de salt de línia al final de la línia. Quan el que ens retorna és un string buit, sabem que hem arribat al final del fitxer i sortim del bucle.

Notem que fem servir una coma amb la sentència print per a evitar que ens inclogui el salt de línia automàtic, donat que la línia ja inclou el caràcter de salt de línia. Finalment tanquem el fitxer amb el mètode close.

Un cop executat podem mirar que el fitxer poem.txt ha estat creat i efectivament conté el poema.