logo

Lettura e scrittura su file di testo in Python

Python fornisce funzioni integrate per creare, scrivere e leggere file. In Python possono essere gestiti due tipi di file: normali file di testo e file binari (scritti in linguaggio binario, 0 e 1).

  • File di testo: In questo tipo di file, ogni riga di testo termina con un carattere speciale chiamato EOL (End of Line), che è il carattere di nuova riga (' ') in Python per impostazione predefinita.
  • File binari: In questo tipo di file non è presente alcun terminatore per una riga e i dati vengono archiviati dopo essere stati convertiti in un linguaggio binario comprensibile dalla macchina.

Questo articolo si concentrerà sull'apertura, chiusura, lettura e scrittura dei dati in un file di testo. Qui vedremo anche come arrivare Pitone output in un file di testo.



Modalità di accesso ai file

Le modalità di accesso governano il tipo di operazioni possibili nel file aperto. Si riferisce a come verrà utilizzato il file una volta aperto. Queste modalità definiscono anche la posizione del file Maniglia del file nel fascicolo. L'handle del file è come un cursore, che definisce da dove i dati devono essere letti o scritti nel file e possiamo ottenere l'output Python in un file di testo.

Ci sono 6 modalità di accesso in Python:

  • Sola lettura ('r')
  • Leggi e scrivi ('r+')
  • Solo scrittura ('w')
  • Scrivi e leggi ('w+')
  • Aggiungi solo ('a')
  • Aggiungi e leggi ('a+')

Sola lettura ('r'): Apri il file di testo per la lettura. La maniglia è posizionata all'inizio del file. Se il file non esiste, genera l'errore I/O. Questa è anche la modalità predefinita in cui viene aperto un file.



Leggi e scrivi ('r+'): Aprire il file per leggere e scrivere. La maniglia è posizionata all'inizio del file. Genera un errore I/O se il file non esiste.

Solo scrittura ('w'): Aprire il file per la scrittura. Per i file esistenti, i dati vengono troncati e sovrascritti. La maniglia è posizionata all'inizio del file. Crea il file se il file non esiste.

Scrivi e leggi ('w+') : apre il file in lettura e scrittura. Per un file esistente, i dati vengono troncati e sovrascritti. La maniglia è posizionata all'inizio del file.



Aggiungi solo ('a') : apre il file per la scrittura. Il file viene creato se non esiste. La maniglia è posizionata alla fine della lima. I dati in fase di scrittura verranno inseriti alla fine, dopo i dati esistenti.

Aggiungi e leggi ('a+'): Aprire il file per leggere e scrivere. Il file viene creato se non esiste. La maniglia è posizionata alla fine della lima. I dati in fase di scrittura verranno inseriti alla fine, dopo i dati esistenti.

Come vengono caricati i file nella memoria primaria?

Esistono due tipi di memoria in un computer, ovvero memoria primaria e memoria secondaria, ogni file salvato o chiunque abbia salvato si trova nella memoria secondaria poiché tutti i dati nella memoria primaria vengono eliminati quando il computer è spento. Pertanto, quando è necessario modificare qualsiasi file di testo o semplicemente lavorare con essi in Python, è necessario caricare quel file nella memoria primaria. Python interagisce con i file caricati nella memoria primaria o nella memoria principale tramite gestori di file (Questo è il modo in cui il tuo sistema operativo dà accesso a Python per interagire con il file che hai aperto cercando il file nella sua memoria, se trovato restituisce un gestore di file e quindi puoi lavorare con il file).

Apertura di un file di testo in Python

Viene fatto utilizzando la funzione open(). Per questa funzione non è necessario importare alcun modulo.

File_object = open(r'File_Name','Access_Mode')>

Il file dovrebbe esistere nella stessa directory del file del programma Python altrimenti, l'indirizzo completo del file dovrebbe essere scritto al posto del nome del file. Notare la R viene inserito prima del nome file per evitare che i caratteri nella stringa del nome file vengano trattati come caratteri speciali. Ad esempio, se nell'indirizzo del file è presente emp, viene considerato come carattere di tabulazione e viene generato un errore di indirizzo non valido. La r rende la stringa grezza, cioè indica che la stringa è priva di caratteri speciali. La r può essere ignorata se il file si trova nella stessa directory e l'indirizzo non viene inserito.

Pitone




array di restituzione Java

# Open function to open the file 'MyFile1.txt'> # (same directory) in append mode and> file1>=> open>(>'MyFile1.txt'>,>'a'>)> # store its reference in the variable file1> # and 'MyFile2.txt' in D:Text in file2> file2>=> open>(r>'D:TextMyFile2.txt'>,>'w+'>)>

>

>

Qui, file1 viene creato come oggetto per MyFile1 e file2 come oggetto per MyFile2

Chiusura di un file di testo in Python

La funzione close() chiude il file e libera lo spazio di memoria acquisito da quel file. Viene utilizzato nel momento in cui il file non è più necessario o se deve essere aperto in una modalità file diversa. File_oggetto.chiudi()

Pitone




# Opening and Closing a file 'MyFile.txt'> # for object name file1.> file1>=> open>(>'MyFile.txt'>,>'a'>)> file1.close()>

>

cos'è la mappa Java

>

Scrivere su un file in Python

Esistono due modi per scrivere in un file:

  • Usando write()
  • Utilizzando writeline()

Scrivere su un file di testo Python utilizzando write()

scrivere() : Inserisce la stringa str1 in un'unica riga nel file di testo.

File_object.write(str1)>

Scrivere su un file di testo utilizzando writelines()

righe di scrittura() : Per un elenco di elementi stringa, ogni stringa viene inserita nel file di testo. Utilizzato per inserire più stringhe contemporaneamente.

File_object.writelines(L) for L = [str1, str2, str3]>

Riferimento: write() VS writelines()

Lettura da un file in Python

Esistono tre modi per leggere i dati da un file di testo:

  • Usando leggi()
  • Usando readline()
  • Utilizzando leggiline()

Leggere da un file usando read()

Leggere() : Restituisce i byte letti sotto forma di stringa. Legge n byte, se nessun n specificato, legge l'intero file.

File_object.read([n])>

Leggere un file di testo utilizzando readline()

linea di lettura() : Legge una riga del file e restituisce sotto forma di stringa. Per n specificato, legge al massimo n byte. Tuttavia, non legge più di una riga, anche se n supera la lunghezza della riga.

File_object.readline([n])>

Leggere un file usando readlines()

leggiline() : Legge tutte le righe e restituisce come ogni riga un elemento stringa in un elenco.

 File_object.readlines()>

Nota: ' ' viene trattato come un carattere speciale di due byte.

In questo esempio, un file denominato myfile.txt viene creato e aperto in modalità scrittura ('w'>). I dati vengono scritti nel file utilizzandowrite>Ewritelines>metodi. Il file viene quindi riaperto in modalità lettura e aggiunta ('r+'>). Varie operazioni di lettura, tra cuiread>,readline>,readlines>e l'uso diseek>, dimostrano diversi modi per recuperare i dati dal file. Alla fine il fascicolo viene chiuso.

Python3




# Program to show various ways to read and> # write data in a file.> file1>=> open>(>'myfile.txt'>,>'w'>)> L>=> [>'This is Delhi '>,>'This is Paris '>,>'This is London '>]> # is placed to indicate EOL (End of Line)> file1.write(>'Hello '>)> file1.writelines(L)> file1.close()># to change file access modes> file1>=> open>(>'myfile.txt'>,>'r+'>)> print>(>'Output of Read function is '>)> print>(file1.read())> print>()> # seek(n) takes the file handle to the nth> # byte from the beginning.> file1.seek(>0>)> print>(>'Output of Readline function is '>)> print>(file1.readline())> print>()> file1.seek(>0>)> # To show difference between read and readline> print>(>'Output of Read(9) function is '>)> print>(file1.read(>9>))> print>()> file1.seek(>0>)> print>(>'Output of Readline(9) function is '>)> print>(file1.readline(>9>))> file1.seek(>0>)> # readlines function> print>(>'Output of Readlines function is '>)> print>(file1.readlines())> print>()> file1.close()>

come disabilitare la modalità sviluppatore su Android
>

>

Produzione:

Output of Read function is  Hello  This is Delhi  This is Paris  This is London  Output of Readline function is  Hello  Output of Read(9) function is  Hello  Th Output of Readline(9) function is  Hello  Output of Readlines function is  ['Hello 
', 'This is Delhi 
', 'This is Paris 
', 'This is London 
']>

Aggiunta a un file in Python

In questo esempio, un file denominato myfile.txt viene inizialmente aperto in modalità scrittura ('w'>) per scrivere righe di testo. Il file viene quindi riaperto in modalità di aggiunta ('a'>) e Oggi viene aggiunto al contenuto esistente. L'output dopo l'aggiunta viene visualizzato utilizzandoreadlines>. Successivamente il file viene riaperto in modalità scrittura, sovrascrivendo il contenuto con Domani. L'output finale dopo la scrittura viene visualizzato utilizzandoreadlines>.

Python3




# Python program to illustrate> # Append vs write mode> file1>=> open>(>'myfile.txt'>,>'w'>)> L>=> [>'This is Delhi '>,>'This is Paris '>,>'This is London '>]> file1.writelines(L)> file1.close()> # Append-adds at last> file1>=> open>(>'myfile.txt'>,>'a'>)>#append mode> file1.write(>'Today '>)> file1.close()> file1>=> open>(>'myfile.txt'>,>'r'>)> print>(>'Output of Readlines after appending'>)> print>(file1.readlines())> print>()> file1.close()> # Write-Overwrites> file1>=> open>(>'myfile.txt'>,>'w'>)>#write mode> file1.write(>'Tomorrow '>)> file1.close()> file1>=> open>(>'myfile.txt'>,>'r'>)> print>(>'Output of Readlines after writing'>)> print>(file1.readlines())> print>()> file1.close()>

>

>

Produzione:

Output of Readlines after appending ['This is Delhi 
', 'This is Paris 
', 'This is London 
', 'Today 
'] Output of Readlines after writing ['Tomorrow 
']>

Articolo correlato:

  • Oggetti file in Python