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
3 respuestas
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
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
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()
Preguntas relacionadas
Nuevas preguntas
python
Python es un lenguaje de programación multipropósito, de tipificación dinámica y de múltiples paradigmas. Está diseñado para ser rápido de aprender, comprender y usar, y hacer cumplir una sintaxis limpia y uniforme. Tenga en cuenta que Python 2 está oficialmente fuera de soporte a partir del 01-01-2020. Aún así, para preguntas de Python específicas de la versión, agregue la etiqueta [python-2.7] o [python-3.x]. Cuando utilice una variante de Python (por ejemplo, Jython, PyPy) o una biblioteca (por ejemplo, Pandas y NumPy), inclúyala en las etiquetas.