Fitxers

Només treballarem amb fitxers de texts seqüencials.

Llegir fitxer i utilitzar les dades directament

No recomanat!

suma = 0
nom_fitxer_entrada = "notes.txt"
with open(nom_fitxer_entrada, 'r') as fitxer_entrada:
    for linia in fitxer_entrada:
        suma = suma + int(linia)

Llegir i guardar en una llista

notes = []
nom_fitxer_entrada = "notes.txt"
with open(nom_fitxer_entrada, 'r') as fitxer_entrada:
    for linia in fitxer_entrada:
        notes.append(int(linia))
print(notes)
#[4, 5, 7, 4, 10]

Escriptura simple

nom_fitxer_sortida = "idees.txt"
with open(nom_fitxer_sortida, 'w') as fitxer_sortida:
    fitxer_sortida.write("Hola, món!\n")
    # "\n", salt de línia
    fitxer_sortida.write(mitjana)
    fitxer_sortida.write("\n")
    fitxer_sortida.write(f"Mitjana: {mitjana:.2g}\n")

Escriptura d’una llista

notes = [4, 5, 7, 4, 10]

nom_fitxer_sortida = "notes.txt"
with open(nom_fitxer_sortida, 'w') as fitxer_sortida:
    for nota in notes:
        fitxer_sortida.write(nota)

Estructura de fitxers

En el terminal sempre ens hem de fixar en el que ens indica el símbol del sistema o prompt.

En Windows sempre porta la ruta sencera acabada amb el símbol “>” i la separació entre directoris és una contrabarra “\”:

C:\Users\professor\Institut\Programació BATX>

En Unix/Linux/Mac podem veure la ruta sencera sense cap símbol afegit:

/home/professor/Institut/Programació BATX

O la ruta respecte al directori de l’usuari:

~/Institut/Programació BATX

Si la carpeta té la següent estructura:

/
|
├── tests/
|   ├── test_arrel.py
|   └── test_pi.py
|
├── arrel.py
├── calcul_pi.py
└── main.py

En Python per referir-se al directori actual s’utilitza “./”. Per tant, a un fitxer que està en la mateixa carpeta on s’executa el programa ens podem referir de dues formes:

fitxer_1 = "arrel.py"
fitxer_1 = "./arrel.py"

A un fitxer que està en un subdirectori sempre hem d’indicar el directori:

fitxer_2 = "./test/arrel.py"