Несколько листов в одном CSV - PullRequest
1 голос
/ 04 октября 2019

Я хотел создать несколько листов в одном и том же файле 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()

В настоящее время создается один файл CSV в имени портфолио 1 со списком имен, присутствующих в именах полей в качестве заголовков столбцов. хотел назвать этот лист как взаимный фонд, и с одинаковыми заголовками столбцов создать несколько листов с названием акций, SIP, Облигации / PPF

Ответы [ 3 ]

3 голосов
/ 04 октября 2019

Вы не можете иметь 2 листа в 1 CSV . Именно так создаются CSV (или «плоские файлы»).

Однако вы можете создать 2 листа в формате 1 XLSX - более новом формате Excel.


Модули Python для записи в XLSX

2 голосов
/ 04 октября 2019

Как сказал Энтони, вы не можете создать CSV с несколькими листами, однако вы можете сделать это с помощью Excel и pandas:

при условии, что вы объявили свои переменные выше.

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()
0 голосов
/ 04 октября 2019

Вы можете конвертировать несколько листов Excel в несколько CSV-файлов не несколько листов CSV-файлов . xlrd в python очень полезен для чтения файлов Excel лист за листом

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...