Ficheros en Python
Ficheros en Python
Tanto para leer archivos como para escribir en ellos, lo primero que hay que hacer, es
abrir el archivo, esto es de sentido común, en python los archivos se abren con la función
"open", a la cual se le pasa como primer argumento el nombre del archivo, y como
segundo argumento el modo en el cual lo va a abrir.
Los modos en los que se puede abrir un archivo son los siguientes:
r--> Modo lectura. El archivo se abre en modo lectura, no se podrá escribir en él, solo
leerlo, y el archivo debe de estar creado previamente, en caso de no existir, python nos
tirará una excepción.
w--> Modo escritura. El archivo se abre en modo escritura, no se podrá leer el archivo,
solo escribir en él. Si el archivo no existe, se creará, en caso de existir, sobreescribe el
contenido.
a--> Modo añadir. Abre el archivo en modo escritura, es exactamente igual que "w" pero
en caso de existir el archivo, continúa escribiendo al final de este.
U--> Modo salto de línea universal. Permite el tratar ficheros con un formato de saltos de
linea diferente a la plataforma en la que se está trabajando, este modo no es muy usual.
Entonces, para abrir un archivo en modo lectura, tan sólo tenemos que hacer:
mi_archivo=open("a.txt", "r")
OJO: El archivo debe de estar en la misma carpeta que el programa, si no lo está se debe
especificar la ruta, en caso de que python no lo encuentre nos tirará una excepción.
Lectura de ficheros:
Para leer los ficheros se usan los métodos: read, readline y readlines.
El método read, nos proporciona una cadena de texto, con todo el contenido del archivo,
incluyendo saltos de línea, se le puede especificar un máximo de bytes a leer.
file=open("a.txt", "r")
cadena=file.read()
un_trozo=file.read(400)
El método readline, lee, desde donde esté el puntero hasta que encuentre un salto de
línea.
file=open("a.txt", "r")
linea1=file.readline()
linea2=file.readline()
linea3=file.readline()
Y por último, el método readlines() devuelve una lista, con todas las líneas del archivo
leído.
file=open("a.txt", "r")
lista=file.readlines()
print lista
#imprimiría ["linea1", "linea2", "linea3"]
Escritura de ficheros:
Para escribir dentro de un fichero se usan los métodos write y writelines, write, toma
como primer argumento, una cadena de texto que escribirá en el archivo, y writelines,
espera una lista con las líneas a escribir en el archivo, ejemplos:
#ejemplo de write
file=open("a.txt", "w")
file.write("esto se va a escribir dentro del archivo")
#para cerrar el archivo
file.close()
#ejemplo de writelines
file=open("a.txt", "w")
lista=["linea1\n", "linea2\n", "linea3\n"]
file.readlines(lista)
#para cerrar el archivo
file.close()
Una cosa que no os he comentado, es el cursor, es decir, cuando nosotros, por ejemplo,
leemos la primera línea de un archivo, hay como una especie de cursor que recorre esa
linea y se sitúa al final de esta, ya sea para leer o para escribir, entonces... Si nosotros
queremos situar ese cursor donde queramos, al principio, o al final...¿Cómo lo hacemos?,
pues para eso existe un par de métodos llamados "seek" y "tell".
Seek se usa para mover el puntero donde nosotros queramos, mientras que tell() nos dice
la distancia a la que se encuentra el cursor contando desde el principio del archivo.
file=open("a.txt", "r")
file.readline()
Leerá la primera línea y el cursor se situará al final de esta, para volver a ponerlo al
principio del archivo, hacemos:
file.seek(0)
file.seek(2)