Fitxers ======= Fitxers ------- - **Fitxers**: contenen les dades (i programes) emmagarzemats en dispositius d'emmagatzematge **no-volàtils**. - Els fitxers s'identifiquen per nom. - Ús d'un fitxer des d'un programa: obrir, llegir o escriure, i tancar. - Exemple: escriure en un fitxer (``open``, ``write``, ``close``). - Exemple: llegir d'un fitxer (``open``, ``read``, ``close``). Fitxers de text --------------- - **Fitxer de text**: conté caràcters organitzats en línies, acabades amb un caràcter salt de línia (``'\n'``). - És habitual llegir-los línia a línia: .. sourcecode:: python with open(nom_fitxer, 'r') as fitxer: for linia in fitxer: # Tractar la línia - I escriure'ls línia a línia: .. sourcecode:: python with open(nom_fitxer, 'w') as fitxer: for linia in estructura_de_dades: fitxer.write(linia) # linia ha de contenir `\n` Obrir i tancar -------------- - :py:func:`Obrir `: .. sourcecode:: python fitxer = open(nom_fitxer, mode) - ``nom_fitxer`` és un string que conté el nom del fitxer. Pot ser un **camí** relatiu o absolut. - ``mode`` també és un string i pot ser lectura (``'r'``) o esriptura (``'w'``). - ``fitxer`` és un :term:`python:file object`. - :py:meth:`Tancar `: .. sourcecode:: python fitxer.close() Llegir i escriure ----------------- - Llegir (:py:meth:`read `, :py:meth:`readline `, :py:meth:`realdlines `): .. sourcecode:: python fitxer.read() # tot fitxer.read(quants_caracters) # només quants_caracters fitxer.readline() # una línia fitxer.readlines() # totes les línies - Escriure (:py:meth:`write `, :py:meth:`writelines `): .. sourcecode:: python fitxer.write(un_string) # només un_string fitxer.writelines(una_llista) # tots els strings de la llista