Tractament de fitxers
1. Fitxers
1.1. Entrada eixida utilitzant fitxers
Per a llegir o escriure en un fitxer, primer l’hem d’obrir. Quan acabem, s’ha de tancar perquè s’alliberen els recursos relacionats amb el fitxer.
Per tant, a Python, utilitzem la següent seqüència d'operacions per traballar amb fitxers:
- Obrir un fitxer
- Llegir o escriure
- Tancar el fitxer
1.2. Open
Per obrir un fitxer utilitzem la funció open().
Python | |
---|---|
A més, podem especificar el mode d'apertura i la codificació.
Mode | Descripció |
---|---|
r | lectura |
w | escriptura |
x | creació exclusiva (falla si ja existeix) |
a | afegir al final, el crea si no existeix |
t | mode lectura de text (per defecte) |
b | mode binari |
+ | actualització (lectura i escriptura ) |
Python | |
---|---|
Warning
És important que tingau en compte que quan l'intèrpret de python s'executa, ho fa des del directori del què s'ha llançat(el podeu obtindre mitjançant os.getcwd()), per això la càrrega de fitxers en rutes relatives en funcions tipus open, load, etc potser vos dóne un error indicant que no el troba.
f = open("ruta relativa/arxiu.txt")
S'han d'evitar les rutes absolutes.
El que podeu fer per evitar estos errors és obtindre la ruta des del fitxer font de la següent forma:
Python | |
---|---|
1.3. Close
Python utilitza un garbage collector per netejar objectes sense referències, però no hem de confiar per tancar el fitxer.
Python | |
---|---|
Altra possibilitat és amb with. En este cas no hem de tancar-lo explícitament.
1.4. Escriptura
Per a escriure, necessitem haver-lo obert amb les opcions w, a o x. Compte amb l'opció w, perquè sobreescriu els arxius.
Python | |
---|---|
1.5. Lectura
Utilitzarem el mètode read() per a llegir. La funció tell() ens diu en quina posició tenim el cursor i amb seek() el podem modificar.
Python | |
---|---|
Python | |
---|---|
També podem utilitzar la funció readline() per a llegir una línia, o readlines() per a que ens torne una llista de línies llegides.
1.5.1. Activitat 11
Crea una aplicació que vaja llegint operacions d'un fitxer "operacions.txt" que contindrà una operació per línia. Per exemple: 4 + 4
Haurà de guardar els resultats en un altre arxiu "resultats.txt". Per exemple: 4 + 4 = 8
Utilitza funcions anònimes per a implementar les operacions de suma, resta, multiplicació i divisió, que seran les úniques operacions reconegudes per la nostra aplicació.
2. Directoris
Si hi ha una gran quantitat de fitxers i directoris amb els que tractar, disposem del mòdul os (operating system), que ens proporciona mètodes per al seu tractament.
Per a veure el directori de treball, utilitzem getcwd().
Per a canviar de directori, chdir().
Python | |
---|---|
Per a llistar els directoris ens servim de listdir().
Python | |
---|---|
Per crear un directori usem mkdir().
Python | |
---|---|
Si volem renombrar un directori.
Python | |
---|---|
Per a eliminar un arxiu utilitzarem remove(). Si el que volem eliminar és una carpeta buida rmdir().
En el cas que la carpeta no estiga buida, hem d'importar el mòdul shutil i utilitzar la funció rmtree().