python file os pathlib shutil

Gestione File in Python

Obiettivi della pillola

Alla fine di questa pillola saprai:

  • controllare se un file esiste;
  • ricavare nome, estensione e dimensione di un file;
  • rinominare, copiare e cancellare file;
  • usare i moduli os, shutil e pathlib per lavorare con i file in Python.

Lavorare con i file in Python

In Python possiamo interagire facilmente con i file: non solo leggerli e scriverli, ma anche verificare se esistono, analizzarne il nome, l’estensione e le dimensioni. Queste operazioni si fanno principalmente con i moduli os, shutil e pathlib.

Verificare se un file esiste

Con os:

import os

if os.path.exists("dati.txt"):
    print("Il file esiste")
else:
    print("Il file non esiste")

Con pathlib:

from pathlib import Path

file = Path("dati.txt")
if file.exists():
    print("Il file esiste")

Separare nome ed estensione

Con os:

import os

nome, estensione = os.path.splitext("relazione.docx")
print("Nome:", nome)          # relazione
print("Estensione:", estensione)  # .docx

Con pathlib:

file = Path("relazione.docx")
print(file.stem)   # relazione
print(file.suffix) # .docx

Ottenere la dimensione di un file

Con os:

import os

dimensione = os.path.getsize("relazione.docx")
print("Dimensione:", dimensione, "byte")

Con pathlib:

file = Path("relazione.docx")
print("Dimensione:", file.stat().st_size, "byte")

Rinominare, copiare e cancellare file

Per gestire i file possiamo utilizzare le funzioni di os e shutil.

Rinominare un file:

import os

os.rename("vecchio.txt", "nuovo.txt")

Copiare un file:

import shutil

shutil.copy("dati.txt", "backup_dati.txt")

Cancellare un file:

import os

os.remove("vecchio.txt")

Con pathlib le stesse operazioni diventano molto leggibili:

file = Path("dati.txt")

# rinominare
file.rename("nuovo_nome.txt")

# copiare
import shutil
shutil.copy(file, "copia.txt")

# cancellare
file.unlink()

In sintesi

  • os.path e pathlib permettono di lavorare con i file.
  • Possiamo controllare l’esistenza, ottenere estensione, nome e dimensione.
  • Con os e shutil possiamo rinominare, copiare e cancellare file.
  • pathlib offre un approccio piΓΉ moderno e leggibile.