Diferència entre revisions de la pàgina «ASIX-M3-UF3-A2»
Línia 8: | Línia 8: | ||
Modes: | 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. El punter es posiciona al començament del fitxer. | ||
:* '''r+:''' Obrir fitxer per lectura i escriptura. | :* '''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:''' 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 | + | :* '''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 | + | |
+ | ==Escriure en un fitxer== | ||
Un cop tinguem el fitxer obert ja podem fer coses amb ell. Per ex: | Un cop tinguem el fitxer obert ja podem fer coses amb ell. Per ex: |
Revisió del 18:36, 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
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.