Last active
March 12, 2021 15:34
-
-
Save ramarivera/b72650e618b1dd638658e093ee099f63 to your computer and use it in GitHub Desktop.
Web scraping 02, manejo de archivos
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
NOMBRE_DEL_ARCHIVO = 'prueba.txt' | |
with open(NOMBRE_DEL_ARCHIVO, mode='w+') as archivo: | |
archivo.write('Hola mundo!! \n') |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
NOMBRE = 'prueba.txt' | |
with open(NOMBRE, mode='a+', encoding='utf-8') as archivo: | |
lineas = archivo.readlines() # lineas es una lista de strings con cada linea del archivo como elemento. | |
# Tambien es posible procesar cada linea del archivo por separado | |
for index, linea in enumerate(archivo): | |
print(f'Linea Numero {index}: {linea}') | |
with open(NOMBRE, mode='a+', encoding='utf-8') as archivo: | |
# Tambien es posible procesar cada linea del archivo por separado | |
for index, linea in enumerate(archivo): | |
print(f'Linea Numero {index}: {linea}') | |
with open(NOMBRE, mode='a+', encoding='utf-8') as archivo: | |
contenido = archivo.read() # contenido tiene todo el texto del archivo en una sola variable de tipo string. | |
with open(NOMBRE, mode='w', encoding='utf-8') as archivo: | |
archivo.write('Hola \n') # Usamos write para escribir contenido dentro del archivo, '\n' inserta un salto de linea. | |
archivo.write('Esta es la segunda linea \n') | |
archivo.write('Y esta, la tercera y ultima') |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import csv | |
# El retorno de la funcion es una tupla de la forma (lineas, cabeceras) | |
# Esta funcion se encarga de abrir un archivo csv, crear un lector de diccionario y devolver una lista de diccionarios (uno por cada linea) | |
# Las cabeceras son utilizadas para corresponder las columnas del archivo CSV con los campos de los diccionarios, y es necesario para guardar de nuevo el archivo | |
def abrir_archivo_csv(ruta): | |
with open(ruta, mode='r') as archivo: | |
lector_csv = csv.DictReader(archivo) | |
return [x for x in lector_csv], lector_csv.fieldnames | |
# El escritor de diccionario necesita como parametros un archivo y la lista de campos, o cabeceras. | |
# Luego, debemos recordar escribir las cabeceras usando writeheaders, para finalmente escribir cada uno de los elementos. | |
def guardar_archivo_csv(ruta, lineas, cabeceras): | |
with open(ruta, mode='w+') as archivo: | |
escritor_csv = csv.DictWriter(archivo, fieldnames=cabeceras) | |
escritor_csv.writeheader() | |
escritor_csv.writerows(lineas) | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import json | |
NOMBRE = 'ejemplo.json' | |
datos = {"nombre": "Ramiro Rivera", "edad": 25} | |
with open(NOMBRE, mode='w') as archivo: | |
# La funcion dump toma dos parametros: el objeto a serializar y una variable archivo, en la cual persistira el contenido | |
json.dump(datos, archivo) | |
# Si queremos simplemente convertir el objeto a JSON (string) para utilizarlo en otro lugar. Notese que la funcion se llama dumps. | |
datos_string = json.dumps(datos) | |
with open(NOMBRE, mode='r') as archivo: | |
# Analogamente, la funcion load toma como parametro un archivo y devuelve un objeto python. | |
datos_archivo = json.load(archivo) | |
# Tambien esta disponible la version sin archivos de load, loads | |
datos_diccionario = json.loads(datos_string) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment