Herramientas de usuario

Herramientas del sitio


informatica:programacion:python:ficheros

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Próxima revisión
Revisión previa
informatica:programacion:python:ficheros [2021/11/05 13:17] – creado tempwininformatica:programacion:python:ficheros [2021/11/05 13:32] (actual) – [Ficheros JSON] tempwin
Línea 2: Línea 2:
  
 ===== Leer ficheros ===== ===== Leer ficheros =====
 +
 +==== Texto normal ====
  
 Leerlo completamente, almacenarlo en memoria y mostrarlo por pantalla: Leerlo completamente, almacenarlo en memoria y mostrarlo por pantalla:
Línea 23: Línea 25:
  
 print(contenido ) print(contenido )
 +</code>
 +
 +Para leer un fichero y almacenar sus líneas:
 +
 +<code python>
 +fname = 'fichero.txt'
 +with open(fname, 'r') as f:
 +    contenido = f.readlines()
 +
 +print(contenido)
 +</code>
 +
 +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):
 +
 +<code python>
 +fname = 'fichero.txt'
 +with open(fname, 'r') as f:
 +    for linea in f:
 +        print(linea)
 +</code>
 +
 +También podemos usar ''enumerate()'':
 +
 +<code python>
 +fname = 'fichero.txt'
 +with open(fname, 'r') as f:
 +    for i, linea in enumerate(f):
 +        print("Línea {}: {}".format(i, linea .strip()))
 +</code>
 +
 +==== Ficheros CSV ====
 +
 +Si el fichero contiene una línea con la cabecera (título de los campos):
 +
 +<code python>
 +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)        
 +</code>
 +
 +Cada línea Python la representará como una lista.
 +
 +Si el fichero no tiene cabecera:
 +
 +<code python>
 +fname = 'data_no_header.csv'
 +
 +with open(fname, 'r') as f:
 +    data_reader = csv.reader(f, delimiter=',')
 +    for line in data_reader:
 +        print(line)
 +</code>
 +
 +==== 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:
 +
 +<code javascript>
 +{
 +    "titulo": "El club de la lucha",
 +    "vista" : true,
 +    "año": 1999,
 +    "actores": [
 +        "Brad Pitt",
 +        "Edward Norton",
 +        "Helena Bonham Carter"
 +    ]
 +}
 +</code>
 +
 +Lectura de fichero JSON en Python:
 +
 +<code 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.
 +</code>
 +
 +Una alternativa más simple:
 +
 +<code python>
 +import json
 +
 +fname = 'movie.json'
 +with open(fname, 'r') as f:
 +    movie = json.load(f)
 +
 +movie
 +</code>
 +
 +Si queremos mostrar un elemento JSON de forma agradable por pantalla:
 +
 +<code python>
 +print(json.dumps(movie, indent=4))
 </code> </code>
informatica/programacion/python/ficheros.1636114659.txt.gz · Última modificación: por tempwin