XLSX в CSV и добавить столбец - PullRequest
       12

XLSX в CSV и добавить столбец

0 голосов
/ 11 декабря 2018

У меня есть функция, которая принимает файл Excel и преобразует каждую вкладку в файл CSV.Это прекрасно работает, см. Ниже.

Однако я хочу добавить новый столбец к каждому CSV-файлу, например, к каждому файлу со столбцом «Дата» с текущей датой в нем.Мой план состоял в том, чтобы загрузить XLSX в Dataframe и затем добавить столбец перед записью в CSV, однако мне было интересно, есть ли более элегантное решение, поскольку некоторые из файлов Excel могут попасть в сотни МБ?

def excel_to_csv(excel_file):
    print("Converting to CSV")
    with xlrd.open_workbook(excel_file) as wb:
        sheets = wb.sheets()
        for sh in sheets:
            save_file = f'{os.path.splitext(excel_file)[0]}_{sh.name}.csv'
            with open(save_file, 'w', newline="") as f:
                c = csv.writer(f)
                for r in range(sh.nrows):
                    print(sh.row_values(r))
                    c.writerow(sh.row_values(r))

Спасибо

1 Ответ

0 голосов
/ 11 декабря 2018

Просто выполните:

from datetime import date
d=date.today().isoformat()

... и в цикле записи CSV выполните:

for r in range(sh.nrows):
    row=sh.row_values(r)
    row.insert(0,d)
    c.writerow(row)

Или, очевидно, вы можете сделать row.append (d) или row.insert() в другом месте, в зависимости от того, в каком столбце должна быть указана дата.

...