• XSS.stack #1 – первый литературный журнал от юзеров форума

[Script] Convert xls* to csv

Guron_18

floppy-диск
Пользователь
Регистрация
13.12.2018
Сообщения
1 420
Решения
2
Реакции
2 325
Скрипт ищет рекурсивно (в папках и подпапках) файлы xls и конвертирует их в csv.

хз нужны ли комментарии к коду. Если да, расставлю.
Python:
#! python3

import zipfile
import pandas as pd
from pathlib import Path
from openpyxl import load_workbook, utils

separator = '\t' # разделитель столбюцов
index = False # Добавлять индексы в первой строке или нет
ext_res = 'csv' # Расширение для результатов

if __name__ == '__main__':
    files = Path.cwd().rglob('*.xl*')
    for file in files:
        try:
            sheet_names = load_workbook(file.name, read_only=True, keep_links=False).sheetnames
            print('Найдены листы', sheet_names)
            for sheet_name in sheet_names:
                dataframe = pd.read_excel(file.name)
                dataframe.to_csv(f'{file.stem}_{sheet_name}.{ext_res}', sep=separator, index=index)

        except utils.exceptions.InvalidFileException as e:
            dataframe = pd.read_excel(file.name, engine='xlrd')
            dataframe.to_csv(f'{file.stem}.{ext_res}', sep=separator, index=index)
        except zipfile.BadZipFile as e:
            print(e)
            pass

'''
На всякий случай
pip install pandas
pip install openpyxl

engine=
xlrd        supports old-style Excel files (.xls).
openpyxl    supports newer Excel file formats.
odf         supports OpenDocument file formats (.odf, .ods, .odt).
pyxlsb      supports Binary Excel files.
'''
 
Последнее редактирование:
А обратно как сделать - из .csv в .xls ?
import pandas as pd read_file = pd.read_csv (r'C:\Users\Username\Desktop\Test\Product_List.csv') read_file.to_excel (r'C:\Users\Username\Desktop\Test\New_Products.xlsx', index = None, header=True)
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх