Diferència entre revisions de la pàgina «ASIX-M3-UF3-A2»

De wikiserver
Dreceres ràpides: navegació, cerca
(Es crea la pàgina amb « Per poder treballar amb un fitxer primer de tot cal obrir-lo Atenció: el fitxer ha de ser a la mateixa carpeta que la funció (que el notebook o que l'arxiu .py)...».)
 
Línia 1: Línia 1:
  
 +
==Obrir i tancar==
  
Per poder treballar amb un fitxer primer de tot cal obrir-lo
+
Per poder treballar amb un fitxer primer de tot cal obrir-lo.
  
Atenció: el fitxer ha de ser a la mateixa carpeta que la funció (que el notebook o que l'arxiu .py)
+
fitxer = open("nom_fitxer.txt", "mode")
  
elMeuFitxer = open("nom fitxer", "mode")
+
Modes:
  
a on nom fitxer és el nom del fitxer en el disc i mode pot ser r (read) per llegir, w (write) per escriure [si no hi ha cap fitxer això el crea] o altres que no tractarem.
+
:* '''r:''' Obrir fitxer per lectura. El punter es posiciona al començament del fitxer.
 
+
:* '''r+:''' Obrir fitxer per lectura i escriptura.
Per exemple:
+
:* '''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")
elMeuFitxer = open("prova.txt", r)
 
  
 
obre el fitxer prova.txt en mode lectura (només podrem llegir, no escriure)
 
obre el fitxer prova.txt en mode lectura (només podrem llegir, no escriure)

Revisió del 18:12, 2 maig 2021

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.