I/O di file Python: leggere e scrivere file in modo sicuro

Scopri come leggere e scrivere file in Python. Padroneggia open(), read(), write() e i gestori di contesto per gestire le operazioni sui file in modo sicuro senza perdite di risorse.

Prova nell'editor

Panoramica

File Input/Output (I/O) è una funzionalità fondamentale che consente ai programmi Python di interagire con l'archiviazione persistente di un computer. Che tu stia creando un semplice logger, leggendo file di configurazione o elaborando enormi array di dati, il tuo programma ha bisogno di un modo affidabile per aprire, leggere, scrivere e chiudere i file su disco. Python fornisce funzioni pulite e integrate per rendere l'interazione del file system semplice e multipiattaforma.

Lo strumento principale per l'accesso ai file in Python è la funzione incorporata `open()`. Questa funzione accetta un percorso di file e una stringa di modalità. La modalità determina il modo in cui si accede al file: `'r'` per la lettura, `'w'` per la scrittura (che sovrascrive il file), `'a'` per aggiungere contenuto alla fine e `'b'` per la modalità binaria (utile per immagini o dati serializzati). Fondamentalmente, ogni volta che apri un file, consuma un handle del sistema operativo. Se non riesci a chiudere il file, puoi causare perdite di memoria o problemi di blocco del file.

Per garantire che i file siano sempre chiusi correttamente, gli sviluppatori Python utilizzano l'istruzione `with`, che implementa un gestore di contesto. Quando si utilizza `with open(...) as file:`, Python chiude automaticamente l'handle del file una volta terminato il blocco di codice, anche se all'interno si verifica un'eccezione imprevista. La lettura dei dati può essere eseguita riga per riga utilizzando `for line in file:` o tutti insieme tramite `.read()`, `.readline()` o `.readlines()`. La scrittura del testo viene gestita tramite `.write()` o `.writelines()`, consentendo operazioni sui file fluide, sicure ed efficienti.

Codice e output di esecuzione

Scrivere un saluto in un file di testo temporaneo e leggerlo riga per riga utilizzando gestori di contesto sicuri.

file_operations.py
Prova nell'editor
filename = "sample.txt"

# Writing to a file
with open(filename, "w") as file:
    file.write("Hello, Python coder!\n")
    file.write("This is a line in a file.\n")
    file.write("File I/O is simple.\n")

print("File written successfully.\n--- Reading File ---")

# Reading from a file line by line
with open(filename, "r") as file:
    for index, line in enumerate(file, 1):
        print(f"Line {index}: {line.strip()}")
Uscita terminale
File written successfully.
--- Reading File ---
Line 1: Hello, Python coder!
Line 2: This is a line in a file.
Line 3: File I/O is simple.

Implementazione passo dopo passo

  • Registrazione degli errori e output del programma
  • Lettura dei file di configurazione (ad esempio, .env o config.txt)
  • Salvataggio di report utente o riepiloghi analitici esportati

Domande frequenti

Qual è la differenza tra le modalità di scrittura e di aggiunta?

La modalità di scrittura ('w') tronca il file a lunghezza zero, eliminando qualsiasi contenuto esistente prima della scrittura. La modalità Aggiungi ('a') posiziona il cursore alla fine, aggiungendo nuovo testo senza eliminare i contenuti esistenti.

Perché dovrei usare l'istruzione with?

L'istruzione with funge da gestore del contesto, garantendo che i file vengano chiusi automaticamente, evitando perdite di memoria e blocchi di errori dei file.

Argomenti correlati

Risorse Python consigliate

Espandi le tue conoscenze con tutorial interattivi, foglietti illustrativi e confronti di codici correlati.