Quería crear varias hojas en el mismo archivo CSV

   a='Portfolio 1' 
   file_name = f'D:/PMS/{a}/Master/{a}{type}'
    with open(file_name, 'w',encoding='utf-8') as csvfile:
        fieldnames = ['Name of Fund','Amount of Units','Price','Date']
        writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
        writer.writeheader()

Actualmente, un archivo CSV a nombre de Portfolio 1 se crea con la lista de nombres presentes en los nombres de campo como encabezados de columna, quería nombrar esa hoja como Mutual Fund, y con los mismos encabezados de columna crear varias hojas con el nombre de las acciones , SIP, Bonos / PPF

1
Mihir 4 oct. 2019 a las 15:33

3 respuestas

La mejor respuesta

No puede tener 2 hojas en 1 CSV . Así se crean los CSV (o 'archivos planos').

Sin embargo, puede crear 2 hojas en 1 XLSX , el formato más nuevo de Excel.


Módulos de Python para escribir en XLSX

3
Anthony R 4 oct. 2019 a las 12:35

Puede convertir varias hojas de Excel en archivos csv múltiples no archivos csv de hojas múltiples . xlrd en python es muy útil para leer archivos de Excel hoja por hoja

0
soundaraj 4 oct. 2019 a las 12:41

Como ha dicho Anthony, no puede crear un CSV con varias hojas, pero puede hacerlo con Excel y pandas:

Asumiendo que has declarado tus variables arriba.

df = pd.read_csv(f'D:/PMS/{a}/Master/{a}{type}')

# columns/fields to use? 
fieldnames = ['Name of Fund','Amount of Units','Price','Date']

writer = pd.ExcelWriter('your_new_file.xlsx')

for col in fieldnames:
    # assuming your behavior here replace with desired result. 
    df[col].to_excel(writer,sheet_name=col)
writer.save()
2
Datanovice 4 oct. 2019 a las 12:49
58236510