Скрипт ищет рекурсивно (в папках и подпапках) файлы 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.
'''
Последнее редактирование: