ASIX-M3-UF3-A2

De wikiserver
La revisió el 19:37, 2 maig 2021 per Rsort (Discussió | contribucions) (Obrir i tancar)
Dreceres ràpides: navegació, cerca

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

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.