Herramientas de usuario

Herramientas del sitio


informatica:programacion:python:ficheros

Python: Ficheros

Leer ficheros

Texto normal

Leerlo completamente, almacenarlo en memoria y mostrarlo por pantalla:

fname = 'fichero.txt'
 
f = open(fname, 'r')
contenido = f.read()
f.close()
 
print(contenido)

Una alternativa más limpia es usando with:

fname = 'fichero.txt'
with open(fname, 'r') as f:
    contenido = f.read()
 
print(contenido )

Para leer un fichero y almacenar sus líneas:

fname = 'fichero.txt'
with open(fname, 'r') as f:
    contenido = f.readlines()
 
print(contenido)

El contenido se cargará como una lista de líneas. Lo que delimita una línea es el carácter fin de línea (\n)

Para leer un fichero línea a línea (útil si es demasiado grande para guardar en memoria):

fname = 'fichero.txt'
with open(fname, 'r') as f:
    for linea in f:
        print(linea)

También podemos usar enumerate():

fname = 'fichero.txt'
with open(fname, 'r') as f:
    for i, linea in enumerate(f):
        print("Línea {}: {}".format(i, linea .strip()))

Ficheros CSV

Si el fichero contiene una línea con la cabecera (título de los campos):

import csv
 
fname = 'data.csv'
 
with open(fname, 'r') as f:
    data_reader = csv.reader(f, delimiter=',')
    headers = next(data_reader)
    print("Headers = {}".format(headers))
    for line in data_reader:
        print(line)        

Cada línea Python la representará como una lista.

Si el fichero no tiene cabecera:

fname = 'data_no_header.csv'
 
with open(fname, 'r') as f:
    data_reader = csv.reader(f, delimiter=',')
    for line in data_reader:
        print(line)

Ficheros JSON

JavaScript Object Notation. Formato muy utilizado en la serialización de los datos y la comunicación entre servicios.

Ejemplo de fichero JSON:

{
    "titulo": "El club de la lucha",
    "vista" : true,
    "año": 1999,
    "actores": [
        "Brad Pitt",
        "Edward Norton",
        "Helena Bonham Carter"
    ]
}

Lectura de fichero JSON en Python:

import json
 
fname = 'movie.json'
with open(fname, 'r') as f:
    content = f.read()
    movie = json.loads(content)
 
movie
 
# "movie" es ahora un objeto Python de clase diccionario.

Una alternativa más simple:

import json
 
fname = 'movie.json'
with open(fname, 'r') as f:
    movie = json.load(f)
 
movie

Si queremos mostrar un elemento JSON de forma agradable por pantalla:

print(json.dumps(movie, indent=4))
informatica/programacion/python/ficheros.txt · Última modificación: por tempwin