En Python, para abrir un fichero usaremos la función open, que recibe el nombre del archivo a abrir. Por defecto, si no indicamos nada, el fichero se abre en modo lectura.
OPEN: MODO LECTURA
In [1]:
%pwd
Out[1]:
In [2]:
fichero = open("../datos/cuna.txt")
La función
open
abrirá el fichero con el nombre indicado, en este caso el fichero
cuna.txt
. Si no tiene éxito, se lanzará una excepción. Si se ha podido abrir el fichero correctamente, la variable
fichero
nos permitirá manipularlo.
In [3]:
ls "../datos"
In [4]:
fichero= open("../datos/cuna.txt")
for linea in fichero:
print(linea)
Es posible, además, obtener todas las líneas del archivo utilizando una sola llamada a función
readlines
.
In [5]:
fichero = open("../datos/cuna.txt")
lineas = fichero.readlines()
lineas
Out[5]:
En este caso, la variable líneas tendrá una lista de cadenas con todas las líneas del fichero.
Es importante tener en cuenta que cuando se utilizan funciones como
archivo.readlines()
, se está cargando en memoria el fichero completo. Siempre que una instrucción cargue un fichero completo debe tenerse cuidado de utilizarla sólo con ficheros pequeños, ya que de otro modo podría agotarse la memoria.
In [6]:
# Uso de rstrip para eliminar saltos de línea
lineas[0].rstrip()
Out[6]:
OPEN: MODO ESCRITURA
Si queremos abrir un fichero en modo escritura, hay que indicarlo como segundo parámetro de la función
open
.
In [26]:
# Abrimos el archivo nuevo y con el parámetro 'w' le indicamos que estamos en modo escritura
arc_write = open('../datos/nuevo.txt', 'w')
# Usamos los datos del archivo que hemos abierto antes 'cuna.txt':
# fichero = open("../datos/cuna.txt")
# lineas = fichero.readlines()
# Copia en el nuevo archivo solo las líneas pares de la variable 'lineas' que a su vez contiene todas las líneas
# del archivo 'cuna.txt'
for i, line in enumerate(lineas):
if i % 2 == 0:
arc_write.write(str(i) + ' ' + line)
else:
pass
In [27]:
arc_write.close() # cerramos el fichero
In [25]:
open('../datos/nuevo.txt').readlines()
Out[25]:
In [11]:
open('../datos/nuevo.txt', 'a').write('\nEste es el final')
Out[11]:
In [12]:
open('../datos/nuevo.txt').readlines()
Out[12]:
In [13]:
open('../datos/nuevo.txt').readline()
Out[13]:
In [ ]: