ASIX-M3-UF3-A2
Obrir i tancar
Per poder treballar amb un fitxer primer de tot cal obrir-lo.
fitxer = open("nom_fitxer.txt", "mode")
Modes:
- r: Obrir fitxer per lectura. El punter es posiciona al començament del fitxer.
- r+: Obrir fitxer per lectura i escriptura.
- w: Si el fitxer existeix, trunca la longitud a zero i sinó el crea. El punter es posiciona al començament del fitxer.
- w+: Obrir fitxer per escriure pel final: fitxer = open ("nom_fitxer.txt", "a")
obre el fitxer prova.txt en mode lectura (només podrem llegir, no escriure)
Hem de pensar sempre a tancar els fitxers un cop oberts perquè altrament es podrien produir resultats inesperats a l´hora de fer altres entrades o sortides o podriem tenir problemes de memòria.
elMeuFitxer.close()
Escriure en un fitxer
Un cop tinguem el fitxer obert ja podem fer coses amb ell. Per ex:
fitxer = open("fitxerprova.txt", "w")
fitxer.write("Hola món\n") # el caràcter \n indica salt de línia fitxer.write("Aquest és el nostre fitxer de text nou\n") fitxer.write("i això és una línia nova\n") fitxer.write("I el fitxer s'ha creat.\n")
fitxer.close()
I efectivament si mirem el fitxer amb un editor de text, a dintre hi veurem:
Hola món Aquest és el nostre fitxer de text nou i això és una línia nova I el fitxer s´ha creat.
Llegir d'un fitxer
Quan llegim un fitxer python ens retorna un string amb el seu contingut
file = open("fitxerprova.txt", "r") print(file.read()) file.close()
Que ens mostrarà:
Hola món
Aquest és el nostre fitxer de text nou i això és una línia nova I el fitxer s'ha creat.
o també podem optar a llegir-lo línia a línia
file = open("fitxerprova.txt", "r") print(file.readlines()) file.close()
Que ens mostrarà
['Hola món\n', 'Aquest és el nostre fitxer de text nou\n', 'i això és una línia nova\n', 'I el fitxer s'ha creat.\n']
Podem també recorrer un fitxer dins una iteració:
file = open("fitxerprova.txt", "r") for l in file:
print(l)
file.close()
Que ens mostrarà
Hola món
Aquest és el nostre fitxer de text nou
i això és una línia nova
I el fitxer s'ha creat..
Gestió elegant de fitxers
Quan volem fer diverses accions de lectura sobre un fitxer podem usar l´ordre with...
with open("fitxerprova.txt") as file:
data = file.read() do something with data
amb el with obrim sempre en mode lectura, i no ens cal indicar el tancament
És molt recomanable doncs usar aquesta sintaxi quan s´escau.