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

De wikiserver
Dreceres ràpides: navegació, cerca
(Escriure en un fitxer)
(Escriure en un fitxer)
Línia 33: Línia 33:
 
Un cop obert el fitxer per escriptura disposem de la funció write()
 
Un cop obert el fitxer per escriptura disposem de la funció write()
  
fitxer = open("fitxerprova.txt", "w")  
+
Exemples:
 +
<source lang=python>
 +
fitxer.open("nom_fitxer.txt","w")
  
fitxer.write("Hola món\n")  # el caràcter \n indica salt de línia
+
fitxer.write("Hola a tothom\n")  # el caràcter \n indica salt de línia
fitxer.write("Aquest és el nostre fitxer de text nou\n")  
+
fitxer.write("Segona línia del meu primer fitxer de text \n")  
fitxer.write("i això és una línia nova\n")  
+
fitxer.write("Línia nova\n")  
fitxer.write("I el fitxer s'ha creat.\n")  
+
fitxer.write("Darrera línia.\n")
  
fitxer.close()
+
fitxer.close()  
 
+
</source>
I efectivament si mirem el fitxer amb un editor de text, a dintre hi veurem:
 
  
Hola món
+
Si obrim el fitxer amb un editor de text, veurem:
 +
<pre>
 +
Hola a to
 
Aquest és el nostre fitxer de text nou
 
Aquest és el nostre fitxer de text nou
 
i això és una línia nova
 
i això és una línia nova
 
I el fitxer s´ha creat.
 
I el fitxer s´ha creat.
 +
</pre>
  
Llegir d'un fitxer
+
o també podem veure el contingut del fitxer, fent:
 
+
<source lang="python">
Quan llegim un fitxer python ens retorna un string amb el seu contingut
+
fitxer = open("nom_fitxer.txt", "r")  
 
+
print(fitxer.read()) # fitxer.read() retorna un string amb tot el contingut del fitxer
file = open("fitxerprova.txt", "r")  
 
print(file.read())
 
 
file.close()
 
file.close()
 +
</source>
  
Que ens mostrarà:
+
Podem també recórrer un fitxer dins una iteració:
 
+
<source lang="python">
Hola món
+
fitxer = open("nom_fitxer.txt", "r")  
    Aquest és el nostre fitxer de text nou
+
for linia in fitxer:
    i això és una línia nova
+
     print(linia)
    I el fitxer s'ha creat.
+
fitxer.close()
 
+
</source>
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
 
  
 +
Si volem diverses accions de lectura sobre un fitxer podem usar l´ordre with...
 +
<source lang="python">
 +
with open("nom_fitxer.txt") as fitxer: 
 +
    textFitxer = file.read()
 +
    ...
 +
</source>
 
amb el with obrim sempre en mode lectura, i no ens cal indicar el tancament
 
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.
 

Revisió del 18:58, 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:

  • 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 obert el fitxer per escriptura disposem de la funció write()

Exemples:

fitxer.open("nom_fitxer.txt","w")

fitxer.write("Hola a tothom\n")  # el caràcter \n indica salt de línia
fitxer.write("Segona línia del meu primer fitxer de text \n") 
fitxer.write("Línia nova\n") 
fitxer.write("Darrera línia.\n")

fitxer.close()

Si obrim el fitxer amb un editor de text, veurem:

Hola a to
Aquest és el nostre fitxer de text nou
i això és una línia nova
I el fitxer s´ha creat.

o també podem veure el contingut del fitxer, fent:

fitxer = open("nom_fitxer.txt", "r") 
print(fitxer.read()) # fitxer.read() retorna un string amb tot el contingut del fitxer
file.close()

Podem també recórrer un fitxer dins una iteració:

fitxer = open("nom_fitxer.txt", "r") 
for linia in fitxer:
    print(linia)
fitxer.close()

Si volem diverses accions de lectura sobre un fitxer podem usar l´ordre with...

with open("nom_fitxer.txt") as fitxer:  
    textFitxer = file.read() 
    ...

amb el with obrim sempre en mode lectura, i no ens cal indicar el tancament