Manejo de archivos con el módulo del sistema operativo

Además del objeto File devuelto por open()función, las operaciones de E / S de archivo también se pueden realizar utilizando la biblioteca incorporada de Python tiene un módulo os que proporciona funciones útiles dependientes del sistema operativo. Estas funciones realizan operaciones de lectura / escritura de bajo nivel en el archivo.

los open()La función del módulo os es similar a la incorporada open (). Sin embargo, no devuelve un objeto de archivo, sino un descriptor de archivo, un número entero único correspondiente al archivo abierto. Los valores 0, 1 y 2 del descriptor de archivo representan los flujos stdin, stdout y stderr. A otros archivos se les proporcionará un descriptor de archivo incremental a partir del 2 en adelante.

Como en el caso de open() función incorporada, os.open()La función también necesita especificar el modo de acceso al archivo. La siguiente tabla enumera varios modos definidos en el módulo os.

No Señor. Módulo OS y descripción
1

os.O_RDONLY

Abierto solo para lectura

2

os.O_WRONLY

Abierto solo para escritura

3

os.O_RDWR

Abierto para leer y escribir

4

os.O_NONBLOCK

No bloquear en abierto

5

os.O_APPEND

Agregar en cada escritura

6

os.O_CREAT

Crear archivo si no existe

7

os.O_TRUNC

Truncar el tamaño a 0

8

os.O_EXCL

Error si existe la creación y el archivo

Para abrir un nuevo archivo para escribir datos en él, especifique O_WRONLY tanto como O_CREATmodos insertando el operador de tubería (|). La función os.open () devuelve un descriptor de archivo.

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

Tenga en cuenta que los datos se escriben en un archivo de disco en forma de cadena de bytes. Por lo tanto, una cadena normal se convierte en una cadena de bytes utilizando la función encode () como antes.

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

La función write () del módulo os acepta esta cadena de bytes y el descriptor de archivo.

os.write(f,data)

No olvide cerrar el archivo usando la función close ().

os.close(f)

Para leer el contenido de un archivo usando la función os.read (), use las siguientes declaraciones:

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

Tenga en cuenta que la función os.read () necesita un descriptor de archivo y el número de bytes a leer (longitud de la cadena de bytes).

Si desea abrir un archivo para operaciones de lectura / escritura simultáneas, use el modo O_RDWR. La siguiente tabla muestra funciones importantes relacionadas con la operación de archivos en el módulo del sistema operativo.

No Señor Funciones y descripción
1

os.close(fd)

Cierre el descriptor de archivo.

2

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

Abra el archivo y configure varios indicadores según los indicadores y posiblemente su modo según el modo.

3

os.read(fd, n)

Lea como máximo n bytes del descriptor de archivo fd. Devuelve una cadena que contiene los bytes leídos. Si se ha alcanzado el final del archivo al que hace referencia fd, se devuelve una cadena vacía.

4

os.write(fd, str)

Escriba la cadena str en el descriptor de archivo fd. Devuelve el número de bytes realmente escritos.