Curso Python. Volumen IV: Ficheros
En el capítulo anterior os estuvimos hablando de listas y terminamos comentando cómo grabar esas listas en un fichero. Pues bien, en el capítulo de hoy ampliaremos el conocimiento con el manejo de ficheros. Este manejo viene bien conocerlo, por si queremos dejar cosas grabadas en disco. También es un buen medio para compartir información con otros programas y plataformas. Así que empecemos.
Para manejar ficheros no es necesario realizar ningún “import”, ya que en la biblioteca estándar de Python ya está incluido todo lo necesario para el manejo de ficheros. Siempre que vayamos a usar ficheros tenemos que abrirlo primero, e indicar si lo abrimos para escribir o para leer.
f = open("fichero.txt", "modo")
Los modos son:
- ‘r’ – Es el modo lectura, se utiliza cuando solo queremos que sea de lectura el fichero.
- ‘w’ – Es el modo escritura, se utiliza cuando queremos escribir información en un fichero, si este ya contiene información será sustituida por la nueva.
- ‘a’ – Es el modo de agregación, se utiliza para añadir información en un fichero. La nueva información se añadirá al final.
- ‘r+’ – Es un modo especial de lectura y escritura, es decir permite tener activo los dos modos.
Os estaréis preguntando si tiene que existir antes el fichero en disco para poder abrirlo, no es necesario ya que al abrirlo, si no existe lo creará.
Crear fichero de texto
Entonces empecemos a operar un poco con los ficheros. A continuación, pondré un código que creará un fichero en la carpeta donde se encuentre nuestro código, guardaremos unas líneas, lo cerraremos y después veremos que si abrimos ese fichero con un editor de texto la información se encontrara guardada. Los ficheros hay que cerrarlos para que la información no quede corrupta.
fichero = open(“prueba.txt”,”w”)
fichero.write(“Hello World”)
fichero.write(“Esto es un ejemplo de Curso Python”)
fichero.write(“que estoy siguiendo en Redeszone.”)
fichero.close()
Si ahora abrimos este fichero veremos lo siguiente:
Y de este modo ya tendremos nuestro primer fichero, os habréis fijado que para escribir un fichero hemos usado la función write().
Lectura de un fichero
Ahora procederemos a leer la información que hemos almacenado antes en el fichero, para realizar esta operación tendremos que utilizar la función read().
fichero.read()
Entonces abrimos el fichero en modo lectura
fichero = open("prueba.txt","r")
print fichero.read()
Con esto nos mostrará toda la información guardada en el fichero. Aunque si lo que queremos es mostrar solo los primeros 10 caracteres será tan sencillo como añadir al read() el número 10.
print fichero.read(10)
Y si por el contrario quieres leer línea a línea el fichero, tendremos que utilizar la función readline().
print fichero.readline()
Pero también puedes querer todo el fichero pero separado por líneas, pues para eso solo tenemos que utilizar la función readlines().
print fichero.readlines()
Esto nos devolverá una lista donde cada elemento es una línea. Todos estos comandos los he puesto que se escriban por pantalla pero también se pueden guardar en una variable.
fichero = open("prueba.txt","r")
print(fichero.readlines())
fichero.close()
El resultado que obtendremos después de la ejecución será:
Fichero con bucles
A veces interesa usar un fichero en un bucle porque queramos operar con su contenido, para eso podemos utilizar el bucle for, y lo utilizaríamos del siguiente modo:
fichero = open("prueba.txt","r")
for linea in fichero:
print linea
Esto nos devolverá la misma información que si dijéramos fichero.read() como hemos usado anteriormente.
Separar información de las líneas
En ocasiones guardamos información en un fichero que nos puede interesar leerlo palabra por palabra, pero no queremos utilizar un bucle para guardar toda esa información para luego utilizarla. Pues para eso utilizaremos la función Split.
fichero = open(“prueba.txt”,”r”)
datos = fichero.readlines()
for línea in datos:
palabras = línea.split()
print palabras
fichero.close()
Comprobaremos que nos habrá realizado una lista con todas las palabras de la línea.
Aunque la mejor manera de manejar los ficheros es utilizar “with”. En el articulo de las listas lo utilicé, y es debido a que si abrimos el fichero e introducimos la operaciones que queremos hacer, cuando termina lo cierra automáticamente, de este modo el fichero no se quedará corrupto.
With open(“prueba.txt,”r”) as fichero:
linea=fichero.readline()
print linea
Y de este modo tan sencillo podemos operar con ficheros, os invito como siempre a que probéis e intentéis integrarlo en nuestro programa de pruebas.
Via: www.redeszone.net