martes, 16 de agosto de 2016

Capítulo 64. Python: Manejo de ficheros. Parte 1


Diario de un programador.- Dia 161


Manejo de ficheros en Python


En este capítulo se hará una pequeña introducción al manejo de ficheros. Con el manejo de ficheros me refiero a la posibilidad de leer y escribir en archivos. En este caso se trabajarán con archivos txt

Lo primero que se hará será leer un archivo del disco. Para leer un archivo se utiliza la siguiente sintaxis

variable = open("x:\\nombre_del_fichero.txt")
print(variable.read())

- variable, es una variable a la cual le es asignada la función "open"
- open es una función que recibe como parámetro la ubicación del fichero a leer. La ubicación del fichero puede encerrarse en comillas simples como dobles, en este caso ocupé comillas dobles. La "x" corresponde a la letra del disco duro donde se aloja el fichero. La letra del disco duro siempre va seguida de dos puntos (:). Lo siguiente son dos barras invertidas (\\) aunque debo mencionar que también es posible utilizar las barras "normales" (//) o solamente una barra (/), pero no se puede utilizar una barra invertida (\) eso da un error. Incluso es posible no escribir ninguna barra y funciona igual. Lo siguiente a escribir es el nombre del fichero que se va a leer. Puede darse el caso que el fichero que se va a abrir se encuentre dentro de uno o más directorios o carpetas, en ese caso, la ruta debe separarse con una barra (/). Esto quedaría del siguiente modo:

variable = open("x:\\nombre_del_directorio/nombre_del_fichero.txt")

Se deben separar los directorio por esta barra (/) ya que la barra invertida da error. A modo de curiosidad, me di cuenta que también acepta doble barra (//) o triple barra (///) incluso cuádruple barra (////) pero ya no quise seguir probando cuantas barras acepta, creo que con una es suficiente. Para no estar confundiéndome sobre en qué momento utilizar la barra y la barra invertida, de ahora en adelante siempre utilizaré la barra "normal". Al menos funciona así en Windows, desconozco por ahora si en sistemas basados en Unix permiten esta característica.

Ejemplo:

En mi caso hice un archivo txt al cual nombré como "test", en su interior escribí lo siguiente: " esto es un documento de prueba". Este archivo lo dejé dentro de mi disco duro G:


Ahora, una vez grabado el archivo. Voy a intentar leer su contenido. Para ello y siguiendo las instrucciones, escribiré el siguiente código:

archivo = open("g://test.txt")
print(archivo.read())


Si todo salió bien, al ejecutar el código debería verse esto en pantalla:


Ahora un ejemplo del segundo caso. En caso de tener el archivo dentro de un directorio o carpeta así como en la siguiente foto...


Lo que hay que hacer es incluir en la ruta el nombre de las carpetas separadas por una barra (/) En mi caso, el archivo está dentro de una carpeta llamada "directorio", por lo tanto, quedará del siguiente modo:

archivo = open("g://directorio/test.txt")
print(archivo.read())


Si todo salió bien, entonces el archivo podrá ser leído.

Escribiendo en archivos

Para poder escribir en un archivo, a la función "open" se le agrega el argumento "w", con comillas incluidas y separadas por una coma. La "w" permite que el archivo quede en modo escritura (write). Lo interesante es que si se especifica un nombre de archivo que no existe, entonces es creado, con lo cual se abre la posibilidad no solamente de escribir en archivos, sino que también en crearlos. Ejemplo:

archivo = open("g://test02.txt", "w")

En mi caso, no existe el archivo "test02.txt" por lo que será creado. Lo siguiente es añadir algo de texto al fichero, para ello se utiliza la función "write"

archivo.write("Escribiendo en un nuevo archivo")

Una vez que se termina de escribir, hay que cerrar el archivo, para ello se utiliza la función "close()"

archivo.close()

Eso es todo. Lo anterior se debería ver algo así:


Al ejecutar el programa, al parecer no pasa nada, ya que el shell queda en blanco, pero si se revisa la ubicación del archivo, se puede ver que se creó un archivo el cual contiene lo escrito en el programa


Esto es todo por ahora, continuaré en la parte 2. Saludos y a practicar.

Gustavo J. Cerda Nilo
Marzo 2016, Agosto 2016




1 comentario:

C++ El apuntador This

El apuntador This En C++, cada objeto tiene acceso a su propia dirección a través de un puntero o apuntador denominado This. Lo...