Python - E/S de archivos
Página anteriorPágina siguiente
Este capítulo cubre todas las funciones básicas de E/S disponibles en Python. Para obtener más funciones, consulte la documentación estándar de Python.
Impresión en la pantalla
La forma más sencilla de producir una salida es usar print declaración donde puede pasar cero o más expresiones separadas por comas. Esta función convierte las expresiones que pasa en una cadena y escribe el resultado en la salida estándar de la siguiente manera −
Demostración en vivo#!/usr/bin/python print "Python is really a great language,", "isn't it?"
Esto produce el siguiente resultado en su pantalla estándar −
Python is really a great language, isn't it?
Lectura de entrada de teclado
Python proporciona dos funciones integradas para leer una línea de texto desde la entrada estándar, que por defecto proviene del teclado. Estas funciones son −
- entrada_sin procesar
- entrada
La entrada_sin procesar Función
La entrada_sin procesar([mensaje]) La función lee una línea de la entrada estándar y la devuelve como una cadena (eliminando la nueva línea final).
#!/usr/bin/python str = raw_input("Enter your input: ") print "Received input is : ", str
Esto le pide que ingrese cualquier cadena y mostraría la misma cadena en la pantalla. Cuando escribí "¡Hola Python!", su salida es así −
Enter your input: Hello Python Received input is : Hello Python
La entrada Función
La entrada([solicitud]) La función es equivalente a raw_input, excepto que asume que la entrada es una expresión de Python válida y le devuelve el resultado evaluado.
#!/usr/bin/python str = input("Enter your input: ") print "Received input is : ", str
Esto produciría el siguiente resultado contra la entrada ingresada:
Enter your input: [x*5 for x in range(2,10,2)] Recieved input is : [10, 20, 30, 40]
Apertura y cierre de archivos
Hasta ahora, ha estado leyendo y escribiendo en la entrada y salida estándar. Ahora, veremos cómo usar los archivos de datos reales.
Python proporciona funciones y métodos básicos necesarios para manipular archivos de forma predeterminada. Puede realizar la mayor parte de la manipulación de archivos utilizando un archivo objeto.
El abierto Función
Antes de que pueda leer o escribir un archivo, debe abrirlo usando el open() integrado de Python. función. Esta función crea un archivo objeto, que se utilizaría para llamar a otros métodos de soporte asociados con él.
Sintaxis
file object = open(file_name [, access_mode][, buffering])
Aquí están los detalles de los parámetros −
-
nombre_archivo − El argumento file_name es un valor de cadena que contiene el nombre del archivo al que desea acceder.
-
modo_de_acceso − El modo_acceso determina el modo en el que se debe abrir el archivo, es decir, leer, escribir, agregar, etc. A continuación, en la tabla, se proporciona una lista completa de los valores posibles. Este es un parámetro opcional y el modo de acceso a archivos predeterminado es lectura (r).
-
almacenamiento en búfer − Si el valor de almacenamiento en búfer se establece en 0, no se realiza ningún almacenamiento en búfer. Si el valor de almacenamiento en búfer es 1, el almacenamiento en búfer de línea se realiza al acceder a un archivo. Si especifica el valor de almacenamiento en búfer como un número entero mayor que 1, la acción de almacenamiento en búfer se realiza con el tamaño de búfer indicado. Si es negativo, el tamaño del búfer es el predeterminado del sistema (comportamiento predeterminado).
Aquí hay una lista de los diferentes modos de abrir un archivo −
Sr.No. | Modos y descripción |
---|---|
1 | r Abre un archivo de solo lectura. El puntero de archivo se coloca al principio del archivo. Este es el modo predeterminado. |
2 | rb Abre un archivo para lectura solo en formato binario. El puntero de archivo se coloca al principio del archivo. Este es el modo predeterminado. |
3 | r+ Abre un archivo para lectura y escritura. El puntero de archivo colocado al principio del archivo. |
4 | rb+ Abre un archivo para lectura y escritura en formato binario. El puntero de archivo colocado al principio del archivo. |
5 | w Abre un archivo solo para escritura. Sobrescribe el archivo si existe. Si el archivo no existe, crea un nuevo archivo para escribir. |
6 | wb Abre un archivo para escribir solo en formato binario. Sobrescribe el archivo si existe. Si el archivo no existe, crea un nuevo archivo para escribir. |
7 | w+ Abre un archivo para escritura y lectura. Sobrescribe el archivo existente si el archivo existe. Si el archivo no existe, crea un nuevo archivo para lectura y escritura. |
8 | wb+ Abre un archivo para escritura y lectura en formato binario. Sobrescribe el archivo existente si el archivo existe. Si el archivo no existe, crea un nuevo archivo para lectura y escritura. |
9 | un Abre un archivo para agregar. El puntero del archivo se encuentra al final del archivo, si el archivo existe. Es decir, el archivo está en el modo de adición. Si el archivo no existe, crea un nuevo archivo para escribir. |
10 | ab Abre un archivo para agregar en formato binario. El puntero del archivo se encuentra al final del archivo, si el archivo existe. Es decir, el archivo está en el modo de adición. Si el archivo no existe, crea un nuevo archivo para escribir. |
11 | a+ Abre un archivo para agregar y leer. El puntero del archivo se encuentra al final del archivo, si el archivo existe. El archivo se abre en el modo de adición. Si el archivo no existe, crea un nuevo archivo para lectura y escritura. |
12 | ab+ Abre un archivo para agregar y leer en formato binario. El puntero del archivo se encuentra al final del archivo, si el archivo existe. El archivo se abre en el modo de adición. Si el archivo no existe, crea un nuevo archivo para lectura y escritura. |
El archivo Atributos de objetos
Una vez que se abre un archivo y tiene un archivo objeto, puede obtener diversa información relacionada con ese archivo.
Aquí hay una lista de todos los atributos relacionados con el objeto de archivo −
Sr.No. | Atributo y descripción |
---|---|
1 | archivo.cerrado Devuelve verdadero si el archivo está cerrado, falso de lo contrario. |
2 | archivo.modo Devuelve el modo de acceso con el que se abrió el archivo. |
3 | archivo.nombre Devuelve el nombre del archivo. |
4 | archivo.softspace Devuelve falso si se requiere espacio explícitamente con la impresión, verdadero de lo contrario. |
Ejemplo
Demostración en vivo#!/usr/bin/python # Open a file fo = open("foo.txt", "wb") print "Name of the file: ", fo.name print "Closed or not : ", fo.closed print "Opening mode : ", fo.mode print "Softspace flag : ", fo.softspace
Esto produce el siguiente resultado −
Name of the file: foo.txt Closed or not : False Opening mode : wb Softspace flag : 0
El cerrar() Método
El método close() de un archivo El objeto vacía cualquier información no escrita y cierra el objeto de archivo, después de lo cual no se puede escribir más.
Python cierra automáticamente un archivo cuando el objeto de referencia de un archivo se reasigna a otro archivo. Es una buena práctica usar el método close() para cerrar un archivo.
Sintaxis
fileObject.close()
Ejemplo
Demostración en vivo#!/usr/bin/python # Open a file fo = open("foo.txt", "wb") print "Name of the file: ", fo.name # Close opend file fo.close()
Esto produce el siguiente resultado −
Name of the file: foo.txt
Lectura y escritura de archivos
El archivo object proporciona un conjunto de métodos de acceso para hacernos la vida más fácil. Veríamos cómo usar read() y escribir() métodos para leer y escribir archivos.
La escribir() Método
escribir() El método escribe cualquier cadena en un archivo abierto. Es importante tener en cuenta que las cadenas de Python pueden tener datos binarios y no solo texto.
El método write() no agrega un carácter de nueva línea ('\n') al final de la cadena −
Sintaxis
fileObject.write(string)
Aquí, el parámetro pasado es el contenido que se escribirá en el archivo abierto.
Ejemplo
#!/usr/bin/python # Open a file fo = open("foo.txt", "wb") fo.write( "Python is a great language.\nYeah its great!!\n") # Close opend file fo.close()
El método anterior crearía foo.txt y escribiría contenido dado en ese archivo y finalmente cerraría ese archivo. Si abriera este archivo, tendría el siguiente contenido.
Python is a great language. Yeah its great!!
La leer() Método
El leer() El método lee una cadena de un archivo abierto. Es importante tener en cuenta que las cadenas de Python pueden tener datos binarios. aparte de los datos de texto.
Sintaxis
fileObject.read([count])
Aquí, el parámetro pasado es el número de bytes que se leerán del archivo abierto. Este método comienza a leer desde el principio del archivo y si cuenta falta, luego intenta leer tanto como sea posible, tal vez hasta el final del archivo.
Ejemplo
Tomemos un archivo foo.txt , que creamos arriba.
#!/usr/bin/python # Open a file fo = open("foo.txt", "r+") str = fo.read(10); print "Read String is : ", str # Close opend file fo.close()
Esto produce el siguiente resultado −
Read String is : Python is
Posiciones de archivos
El decir() El método le dice la posición actual dentro del archivo; en otras palabras, la siguiente lectura o escritura se producirá a esa cantidad de bytes desde el principio del archivo.
La búsqueda(desplazamiento[, desde]) El método cambia la posición actual del archivo. El desplazamiento El argumento indica el número de bytes que se van a mover. El de El argumento especifica la posición de referencia desde donde se moverán los bytes.
Si de se establece en 0, significa usar el principio del archivo como posición de referencia y 1 significa usar la posición actual como posición de referencia y si se establece en 2, entonces el final del archivo se tomará como posición de referencia.
Ejemplo
Tomemos un archivo foo.txt , que creamos arriba.
#!/usr/bin/python # Open a file fo = open("foo.txt", "r+") str = fo.read(10) print "Read String is : ", str # Check current position position = fo.tell() print "Current file position : ", position # Reposition pointer at the beginning once again position = fo.seek(0, 0); str = fo.read(10) print "Again read String is : ", str # Close opend file fo.close()
Esto produce el siguiente resultado −
Read String is : Python is Current file position : 10 Again read String is : Python is
Renombrar y eliminar archivos
Python sistema operativo El módulo proporciona métodos que lo ayudan a realizar operaciones de procesamiento de archivos, como cambiar el nombre y eliminar archivos.
Para usar este módulo, primero debe importarlo y luego puede llamar a cualquier función relacionada.
El método renombrar()
El renombrar() El método toma dos argumentos, el nombre de archivo actual y el nuevo nombre de archivo.
Sintaxis
os.rename(current_file_name, new_file_name)
Ejemplo
El siguiente es el ejemplo para cambiar el nombre de un archivo existente test1.txt −
#!/usr/bin/python import os # Rename a file from test1.txt to test2.txt os.rename( "test1.txt", "test2.txt" )
El quitar() Método
Puede usar remove() método para eliminar archivos proporcionando el nombre del archivo que se eliminará como argumento.
Sintaxis
os.remove(file_name)
Ejemplo
El siguiente es el ejemplo para eliminar un archivo existente test2.txt −
#!/usr/bin/python import os # Delete file test2.txt os.remove("text2.txt")
Directorios en Python
Todos los archivos están contenidos en varios directorios, y Python tampoco tiene problemas para manejarlos. El os El módulo tiene varios métodos que lo ayudan a crear, eliminar y cambiar directorios.
El mkdir() Método
Puede usar mkdir() método del os módulo para crear directorios en el directorio actual. Debe proporcionar un argumento a este método que contenga el nombre del directorio que se creará.
Sintaxis
os.mkdir("newdir")
Ejemplo
El siguiente es el ejemplo para crear un directorio prueba en el directorio actual −
#!/usr/bin/python import os # Create a directory "test" os.mkdir("test")
El chdir() Método
Puede usar chdir() método para cambiar el directorio actual. El método chdir() toma un argumento, que es el nombre del directorio que desea convertir en el directorio actual.
Sintaxis
os.chdir("newdir")
Ejemplo
El siguiente es el ejemplo para ir al directorio "/home/newdir" −
#!/usr/bin/python import os # Changing a directory to "/home/newdir" os.chdir("/home/newdir")
El getcwd() Método
El getcwd() El método muestra el directorio de trabajo actual.
Sintaxis
os.getcwd()
Ejemplo
El siguiente es el ejemplo para dar el directorio actual −
#!/usr/bin/python import os # This would give location of the current directory os.getcwd()
El rmdir() Método
El rmdir() El método elimina el directorio, que se pasa como argumento en el método.
Antes de eliminar un directorio, se debe eliminar todo su contenido.
Sintaxis
os.rmdir('dirname')
Ejemplo
El siguiente es el ejemplo para eliminar el directorio "/tmp/test". Es necesario proporcionar un nombre completo del directorio, de lo contrario, buscaría ese directorio en el directorio actual.
#!/usr/bin/python import os # This would remove "/tmp/test" directory. os.rmdir( "/tmp/test" )
Métodos relacionados con archivos y directorios
Hay tres fuentes importantes, que proporcionan una amplia gama de métodos de utilidad para manejar y manipular archivos y directorios en los sistemas operativos Windows y Unix. Son los siguientes −
-
Métodos de objeto de archivo:el archivo objeto proporciona funciones para manipular archivos.
-
Métodos de objetos del sistema operativo:proporciona métodos para procesar archivos y directorios.
python
- C Entrada Salida (E/S)
- Manejo de archivos C
- Entrada, salida e importación de Python
- E/S de archivo de Python
- Administración de archivos y directorios de Python
- Python comprueba si el archivo existe | Cómo comprobar si existe un directorio en Python
- C - E/S de archivo
- C - Archivos de encabezado
- Archivos y flujos de C++
- C# - E/S de archivos
- ¿Qué es un archivo Mill?