Type to search…

Fitxers

Llegir i editar fitxers de text amb Python és molt senzill, fins i tot si venen comprimits. També veurem com controlar les possibles excepcions durant l'accés als fitxers.

Llegir, crear i editar fitxers de text de tot tipus (text pla, binaris, CSV, JSON, HTML… ) amb Python és ràpid i molt senzill.

Conceptes previs.

En el seu nucli, un fitxer és un conjunt contigu de bytes utilitzats per emmagatzemar dades.

Aquestes dades s’organitzen en un format específic i poden ser qualsevol cosa tan simple com un fitxer de text o tan complexe com un paquet ofimàtic o un videojoc.

Nosaltres ens centrarem en el primer cas, fixers en format de text pla perquè són simples, transparents i fàcils de manipular: es poden llegir amb qualsevol editor, processar amb scripts i entendre sense eines especials.

Els fitxers de de text pla es componen de tres parts principals:

  • Capçalera: metadades sobre el contingut del fitxer (nom del fitxer, mida, tipus, etc.)
  • Dades: contingut del fitxer tal com l’ha escrit el creador o editor
  • Final del fitxer (EOF): caràcter especial que indica el final del fitxer.

Rutes (Paths)

Quan accediu a un fitxer en un sistema operatiu, cal una ruta de fitxer.

La ruta del fitxer és una cadena que representa la ubicació d’un fitxer. Està dividit en tres grans parts:

  • Ruta de la carpeta: la ubicació de la carpeta de fitxers al sistema de fitxers on les carpetes posteriors estan separades per una barra inclinada / (Unix,Linux i MacOS) o una barra invertida \ (Windows)
  • Nom del fitxer: el nom real del fitxer
  • Extensió: el final de la ruta del fitxer amb un punt ( .) que s’utilitza per indicar el tipus de fitxer

Anem a analitzar un cas molt habitual; imaginem que volem obrir el fitxer animals.csv des del programa read_file.py.

/
├── python_files/  ← working directory
|   │
|   ├── data/  ← Current working directory (cwd)
|   │   └── animals.csv
|   │
|   └── read_file.py  ← Accessing this file

La ruta del fitxer correcta per tractar-lo en aquest cas, suposant que estem a Linux, seria:

python
file_path = "data/animals.csv"

És molt important l’ús de rutes de fitxers en aquest format, que es tracta d’una ruta relativa.

⚠Cal evitar sempre les rutes absolutes (per exemple: C:\Users\usuari1\file.py) o /home/user1 perquè només funcionen dins la màquina local i poden conduir a forats de seguretat.⚠


Modes d’accés a fitxers.

Per tal d’obrir un fitxer de text per treballar-hi; només cal usar la funció integrada open(), que només necessita la ruta del fitxer.

Apart de tenir el paràmetre necessari del file_name, informem el segon paràmetre, el mode, que pot tenir aquests valors:

  • ‘r’ Obert per llegir read (per defecte)
  • ‘w’ Obriu per escriure write, truncant (sobreescrivint) el fitxer primer si existeix.
  • ‘x’ Obriu per escriure write un nou fitxer, si existeix el fixer retorna un error.
  • ‘a’ Obriu per escriure append, si el fitxer existeix posa el contingut nou al final.
  • ‘rb’o’wb’ Obrir en mode binari (llegir/escriptura mitjançant dades de bytes).

També és important que sabeu que la paraula reservada with ens permet obrir el fitxer i tancar-lo automàticament.

⚠Avís: Recomanem usar `with open() per tal d’assegurar-vos que el fitxer es tanqui correctament i així evitar problemes!⚠


Mode read, r

Per provar els exemples no et cal cap llibreria especial.

Crea un nou projecte amb uv.

shell
uv init fitxers
cd fitxers

Ara, crea un fitxer anomenat demo.txt amb l’editor que vulguis.

O des del terminal si vols:

shell
echo "Bon dia!" > demo.txt

You're reading a preview.

Sign in to read the full article. Any account opens 10 free articles a month; students and teachers read their course pages without limit.

Sign in