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

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
informatica:programacion:python:ficheros [2021/11/05 13:19] – [Leer ficheros] 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 25: Línea 27:
 </code> </code>
  
-Para leer un fichero por línea:+Para leer un fichero y almacenar sus líneas:
  
 <code python> <code python>
Línea 37: Línea 39:
 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'') 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>
informatica/programacion/python/ficheros.1636114761.txt.gz · Última modificación: por tempwin