====== 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))