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:
- Per defecte el mode és r.
- 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 lectura i escriptura. Si el fitxer no existeix, el crea, sinó el trunca a longitud zero. El punter es posiciona al principi del fitxer.
- a: Obrir fitxer per lectura. Es crea sinó existeix. El punter es posiciona al final del fitxer.
- a+: Obrir fitxer per lectura i escriptura. Si el fitxer no existeix, el crea. El punter es posiciona al final del fitxer.
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 podríem tenir problemes de memòria.
fitxer.close()
Llegir d'un fitxer
un cop obert el fitxer per lectura, disposem de dues funcions: fitxer.read() i fitxer.readline()
- Lectura de tot el fitxer de cop: textFitxer = fitxer.read()
- Lectura de 100 bytes: textFitxer = fitxer.read(100)
- Lectura d'una línia complerta: textFitxer = fitxer.readline()
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.