CodeGym /Corsi /Python SELF IT /Lavorare con file binari

Lavorare con file binari

Python SELF IT
Livello 21 , Lezione 4
Disponibile

5.1 Dati binari

Lavorare con file binari in Python è un po' diverso rispetto ai file di testo, poiché i file binari contengono dati in un formato non destinato alla lettura umana. Invece delle stringhe, i file binari lavorano con i byte.

Per lavorare con file binari si usa la funzione open() specificando una modalità che contiene la lettera 'b' (per esempio, 'rb' per la lettura, 'wb' per la scrittura e così via).

Esempi di apertura di file binari:

  • Lettura: 'rb'
  • Scrittura: 'wb'
  • Aggiunta: 'ab'
  • Lettura e scrittura: 'r+b', 'w+b', 'a+b'

Esempio:


file = open('example.bin', 'rb')
content = file.read()
print(content)
file.close()

La variabile 'content' conterrà un array di byte.

I dati binari (byte) sono il livello più basso e più base di rappresentazione dei dati. Qualsiasi dato può essere letto come binario.

Ciò significa che un file di testo può sempre essere letto come binario, ma non tutti i file binari possono essere interpretati come testo.

5.2 Lettura di file binari

Lettura di tutto il contenuto del file

Il metodo read() legge tutto il contenuto del file in byte.

Esempio:


file = open('example.bin', 'rb')
content = file.read()
print(content)
file.close()

Lettura di un numero specifico di byte

Il metodo read(n) legge n byte dal file.

Esempio:


file = open('example.bin', 'rb')
content = file.read(10)  # Legge i primi 10 byte
print(content)
file.close()

Lettura per riga

Il metodo readline() legge una riga dal file. Nel caso dei file binari la riga termina con il carattere di nuova linea (\n).

Esempio:


file = open('example.bin', 'rb')
line = file.readline()
print(line)
file.close()

Lettura di tutte le righe

Il metodo readlines() legge tutte le righe dal file e le restituisce come lista di byte.

Esempio:


file = open('example.bin', 'rb')
lines = file.readlines()
for line in lines:
    print(line)
file.close()

I metodi per lavorare con le stringhe potrebbero non funzionare correttamente se si legge un file che non contiene testo: per esempio, un archivio, un'immagine o un video.

5.3 Scrittura di dati binari

Il metodo write() scrive byte in un file. I dati da scrivere devono essere sotto forma di byte (bytes).

Lettura e scrittura di immagini

Lettura di un'immagine da un file e scrittura in un altro file.


# Lettura dell'immagine
with open('input_image.jpg', 'rb') as infile:
    image_data = infile.read()
        
# Scrittura dell'immagine
with open('output_image.jpg', 'wb') as outfile:
    outfile.write(image_data)

È anche possibile scrivere dati testuali:

Esempio:


data = b"Hello, World!"
lines = [b"First line.\n", b"Second line.\n", b"Third line.\n"]
        
file = open('example.bin', 'wb')
file.write(data)
file.writelines(lines)
file.close()
2
Compito
Python SELF IT, livello 21, lezione 4
Bloccato
Lettura di un file binario
Lettura di un file binario
2
Compito
Python SELF IT, livello 21, lezione 4
Bloccato
Scrittura di dati binari
Scrittura di dati binari
1
Sondaggio/quiz
Lavorare con i file, livello 21, lezione 4
Non disponibile
Lavorare con i file
Lavorare con i file
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION