Archivos

ARCHIVOS:

Índice de la página:
Descripciones.
CSV.
XLSX.
PKL.



------------------------------------------------------------------------------- 
Descripciones:
## Primero creamos una función para hacerlo todo a través de ella
def creacion():
   archivo = open('C:/BOLSA_1/texto.txt', 'w')  # Si existe el archivo lo abre, si no existe crea el archivo de (escritura(w),
   lectura(r), Escribir sin modificar el contenido concatenando(a)
   archivo.close()  # Cierra el archivo
creacion() # Llama a la función creacion, al ejecutar ahora me crea el archivo 'texto.txt'

## Escritura
def escribir():
   archivo = open('C:/BOLSA_1/texto.txt', 'a')
   archivo.write('Nombre: Melchor González 
')
archivo.write('Edad: 66 
')
archivo.close()
escribir()  # Llamar a la función escribir

##  Lectura
def leer():
   archivo = open('C:/BOLSA_1/texto.txt', 'r')
   fila = archivo.readline() # Me lee una linea concreta a través del siguiente while
   while fila != '':   # Que sea diferente a cadena vacía (al detectar el final del archivo ya no sigue leyendo)
print(fila)
fila = archivo.readline()
archivo.close()
leer()  # Llamar a la función leer




-----------------------------------------------------------

CSV:
## SI EL ARCHIVO NO ESTÁ EN LA CARPETA DEL NOTEBOOK, HAY QUE PONERLE LA RUTA AL ARCHIVO

# Bajar un archivo csv de Yahoo
import yfinance as yf
orcl = yf.download("ORCL", start="2000-01-01", end="2019-01-01")

# Ahora bajarlos usando pandas datareader
from pandas_datareader import data as pdr
import yfinance as yf
yf.pdr_override() 
orcl = pdr.get_data_yahoo("ORCL", start="2000-01-01", end="2019-01-01")



# Leer Archivos csv, creando indice en una columna:
df = pd.read_csv('C:/Users/USER/Dropbox/PYTHON/HERRAMIENTAS/Borrar1.csv', index_col='Date')
df = pd.read_csv('cuenta.csv',index_col='Ticket')  # Lee el archivo y pone como índice la columna 'Ticket'
df = pd.read_csv('SP500_20.csv',index_col=0)  # Lee el archivo 'SP500_20.csv' y pone como índice la columna cero
df = pd.read_csv('Cars.csv', sep = ';')  # Lee el archivo csv separado por ';'


# Utilizo el archivo tal como sale de CuanDataManager (sin nombre de columnas)
# parse_dates=True: deja las fechas con formato de fechas para poderlas trabajar
# usecols=[0, 2, 3] para decirle las columnas que quiero usar
# header=None (Le digo que el archivo no tiene nombre de columnas
# names (le pongo nombre a las columnas)
dfc = pd.read_csv('EURUSD-D.csv', index_col=0, parse_dates=True, usecols=[0, 2, 3, 4, 5, 6], header=None, names=['Vela', 'Open', 'High', 'Low', 'Close', 'Volumen'])



# Crear archivo 'Borrar1' en csv:
df.to_csv('C:/Users/USER/Dropbox/PYTHON/HERRAMIENTAS/Borrar1.csv')
df.to_csv('C:/Users/USER/Dropbox/PYTHON/HERRAMIENTAS/Borrar1.csv', index=False)  # No mantiene el índice por defecto




-----------------------------------------------------------

XLSX:
# Leer Archivos excel, creando indice en una columna:
df = pd.read_excel('C:/Users/USER/Dropbox/PYTHON/HERRAMIENTAS/Borrar1.xlsx', parse_dates=True, index_col=0)
df = pd.read_excel('Borrar1.xlsx', index_col='date', names=['date', 'equity'])  # Crea índice y pone nombre a las columnas

# Lee archivo excel una hoja concreta, y elige las columnas que necesita
df1 = pd.read_excel(ruta_carpeta + nombre_archivo, sheet_name='n1b-MT1',
    usecols=[1,2,3,4,5,6,7,9,10,11,12,13,14,15,16,20], header=None, names=cabecera) 

# Crear archivo 'Borrar1' en excel:
df.to_excel('C:/Users/USER/Dropbox/PYTHON/HERRAMIENTAS/Borrar1.xlsx')

# Creo el archivo excel 'Ejercicio6.xlsx' y su hoja 'cuenta_trading' se crean en la carpeta de este Notebook
df.to_excel('Ejercicio6.xlsx', sheet_name='cuenta_trading', index=True)  # index=False No mantiene el índice.





-----------------------------------------------------------

PKL:
# Es un tipo objeto que guarda muchos archivos en uno solo

import pandas as pd
import yfinance as yf # Librería del parche para descargar datos de yahoo
yf.pdr_override() # Importamos Pandas Datareader y lo parcheamos para que funcione con Yahoo

import pickle   # Importamos el módulo para crear el archivo .pkl

class MarketIndex:
    def __init__(self, url = 0, pos = 0, postfix=""):
        self.url = url
        self.pos = pos

        self.postfix = postfix

def get_data(start='2008-01-01', end=None, index='syp'):
    indexes = {}
    indexes['ibex35'] = MarketIndex(r'https://es.wikipedia.org/wiki/IBEX_35', 2, '.MC')
    indexes['nasdaq100'] = MarketIndex(r'https://en.wikipedia.org/wiki/NASDAQ-100', 2, '')      
    indexes['mdax'] = MarketIndex(r'https://en.wikipedia.org/wiki/MDAX', 1, '.DE')
    indexes['ftsemib'] = MarketIndex(r'https://en.wikipedia.org/wiki/FTSE_MIB', 0, '.MI')
    indexes['eurostoxx50'] = MarketIndex(r'https://en.wikipedia.org/wiki/Euro_Stoxx_50', 2, '')
   
    # ESTOS ÍNDICES NO FUNCIONAN
    #indexes['syp'] = MarketIndex(r'https://en.wikipedia.org/wiki/List_of_S%26P_500_companies', 0, '')
    #indexes['cac40'] = MarketIndex(r'https://en.wikipedia.org/wiki/CAC_40', 2, '')
    #indexes['ftse250'] = MarketIndex(r'https://en.wikipedia.org/wiki/FTSE_250_Index', 1, '.L', 'Ticker[4]')
    #indexes['dax'] = MarketIndex(r'https://en.wikipedia.org/wiki/DAX', 2, '.DE', 'Ticker symbol')
    #indexes['aex'] = MarketIndex(r'https://en.wikipedia.org/wiki/AEX_index', 1, '.AS', 'Ticker symbol')
    #indexes['amx'] = MarketIndex(r'https://en.wikipedia.org/wiki/AMX_index', 0, '.AS', 'Ticker symbol')
    #indexes['bel20'] = MarketIndex(r'https://en.wikipedia.org/wiki/BEL_20', 1, '.BR', 'Ticker symbol')

    if index in indexes:
        url = indexes[index].url
        pos = indexes[index].pos
        postfix = indexes[index].postfix
    else:
        print('Index '+index+' not configured/available!')
        
    # Obtiene la lista actual de tickers
    index_assets = pd.read_html(url, header=0)[pos]
    assets = (index_assets.Ticker+postfix).tolist()

   # Descarga el histórico en un DataFrame Multi-Indice
    try:
        data = yf.download(assets, start=start, as_panel=False)
        # Si pedimos el IBEX el nombre del archivo sería "ibex35_componentes.pkl" y estará en la carpeta HERRAMIENTAS
        filename = 'C:/Users/USER/Dropbox/PYTHON/HERRAMIENTAS/'+index+'_componentes.pkl' 
        data.to_pickle(filename)
        print('Data saved at {}'.format(filename))
    except ValueError:
        print('Failed download, try again.')
        data = None
    except OSError:
        print('Failed saving file: '+filename+', try again.')

    return data

# Extrae los componentes de los índices que necesitemos
#IBEX35 = get_data(index="ibex35")
#NASDAQ100 = get_data(index="nasdaq100")
#MDAX = get_data(index="mdax")
#FTSEMIB = get_data(index="ftsemib")
#Euro_Stoxx_50 = get_data(index="eurostoxx50")
-----------------------------------------------------------