Gestione dei file con il modulo os

Oltre all'oggetto File restituito da open()funzione, le operazioni di I / O sui file possono essere eseguite anche utilizzando la libreria incorporata di Python ha un modulo os che fornisce utili funzioni dipendenti dal sistema operativo. Queste funzioni eseguono operazioni di lettura / scrittura di basso livello sul file.

Il open()la funzione dal modulo os è simile all'open () integrato. Tuttavia, non restituisce un oggetto file ma un descrittore di file, un numero intero univoco corrispondente al file aperto. I valori del descrittore di file 0, 1 e 2 rappresentano i flussi stdin, stdout e stderr. Ad altri file verrà fornito un descrittore di file incrementale da 2 in poi.

Come nel caso di open() funzione incorporata, os.open()la funzione deve anche specificare la modalità di accesso ai file. La tabella seguente elenca le varie modalità definite nel modulo os.

Sr.No. Modulo OS e descrizione
1

os.O_RDONLY

Aperto solo in lettura

2

os.O_WRONLY

Aperto solo per la scrittura

3

os.O_RDWR

Aperto per la lettura e la scrittura

4

os.O_NONBLOCK

Non bloccare in apertura

5

os.O_APPEND

Aggiungi a ogni scrittura

6

os.O_CREAT

Crea file se non esiste

7

os.O_TRUNC

Tronca la dimensione a 0

8

os.O_EXCL

Errore se la creazione e il file esistono

Per aprire un nuovo file per scrivere dati in esso, specificare O_WRONLY così come O_CREATmodalità inserendo l'operatore pipe (|). La funzione os.open () restituisce un descrittore di file.

f=os.open("test.dat", os.O_WRONLY|os.O_CREAT)

Notare che i dati vengono scritti nel file su disco sotto forma di stringa di byte. Quindi, una stringa normale viene convertita in una stringa di byte utilizzando la funzione encode () come in precedenza.

data="Hello World".encode('utf-8')

La funzione write () nel modulo os accetta questa stringa di byte e il descrittore di file.

os.write(f,data)

Non dimenticare di chiudere il file usando la funzione close ().

os.close(f)

Per leggere il contenuto di un file utilizzando la funzione os.read (), utilizzare le seguenti istruzioni:

f=os.open("test.dat", os.O_RDONLY)
data=os.read(f,20)
print (data.decode('utf-8'))

Notare che, la funzione os.read () necessita di un descrittore di file e del numero di byte da leggere (lunghezza della stringa di byte).

Se si desidera aprire un file per operazioni di lettura / scrittura simultanee, utilizzare la modalità O_RDWR. La tabella seguente mostra importanti funzioni relative al funzionamento dei file nel modulo os.

Suor n Funzioni e descrizione
1

os.close(fd)

Chiudi il descrittore di file.

2

os.open(file, flags[, mode])

Apri il file e imposta vari flag in base ai flag e possibilmente la sua modalità in base alla modalità.

3

os.read(fd, n)

Legge al massimo n byte dal descrittore di file fd. Restituisce una stringa contenente i byte letti. Se è stata raggiunta la fine del file a cui fa riferimento fd, viene restituita una stringa vuota.

4

os.write(fd, str)

Scrive la stringa str nel descrittore di file fd. Restituisce il numero di byte effettivamente scritti.