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
Este comentario ha sido eliminado por el autor.
ResponderEliminar