Файл CSV на самом деле представляет собой только один лист.Файл Excel xlsx
поддерживает листы.Панд можно заставить писать прямо в файл Excel, используя ExcelWriter
.Что-то вроде следующего должно сделать то, что вам нужно:
import pandas as pd
import xlsxwriter
import glob
import os
writer = pd.ExcelWriter('multi_sheet.xlsx', engine='xlsxwriter')
folders = next(os.walk('.'))[1]
for host in folders:
Path = os.path.join(os.getcwd(), host)
for f in glob.glob(os.path.join(Path, "*.csv")):
print(f)
df = pd.read_csv(f)
df.to_excel(writer, sheet_name=os.path.basename(f)[:31])
writer.save()
Для каждого файла CSV, найденного в ваших папках, будет создан новый лист Excel.Имя листа - это имя файла CSV, например, a.csv
будет иметь имя листа a
.
Примечание. В Excel для имени листа установлено ограничение в 31 символ.