Добрый день. Получаю выгрузку данных из 1С в html (весом 225 мб.) эту выгрузку необходимо сохранить как excel. Если делать руками открыть с помощью эселя и сохранить как книгу уходит уйма времени, пришла мысль использовать python. Я пробую двумя способами, и всегда ошибка. Разными способами пытался решить проблему с кодировкой, так же "раздавал" права на запись и редактирование файлов в Windows. определенно что-то делаю не так. Спасите, пожалуйста. :(
Способ 1.
import os
from bs4 import BeautifulSoup
from openpyxl import Workbook
# Путь до файла
filename = "D:\\cherry\\test.xlsb"
# Получаем директорию файла
dir_path = os.path.dirname(filename)
# Проверяем наличие директории для файла и создаем, если ее нет
if not os.path.isdir(dir_path):
os.makedirs(dir_path)
# Проверяем возможность записи в директорию
if not os.access(dir_path, os.W_OK):
print("Папка " + dir_path + " недоступна для записи")
exit()
# Проверка существования файла. Если файла нет, он будет создан.
if not os.path.isfile(filename):
open(filename, "w").close()
# Изменение разрешений на выходной файл
os.chmod(filename, 0o777)
with open("D:\\cherry\\Vygruzka.html", encoding="utf-8", errors="ignore") as fpx:
soup = BeautifulSoup(fpx, "html.parser")
wb = Workbook()
ws = wb.active
for i, link in enumerate(soup.find_all('a')):
ws.cell(row=i+1, column=1, value=link.get('href'))
ws.cell(row=i+1, column=2, value=link.text)
wb.save(filename)
Выбивает ошибку SyntaxError: (unicode error) 'utf-8' codec can't decode byte 0xcf in position 0: invalid continuation byte
19:09:34:894 Программа "python.exe" завершилась с кодом 1 (0x1).
Способ 2.
mport os
from bs4 import BeautifulSoup
from openpyxl import Workbook
html_file = 'D:\\cherry\\Vygruzka.html'
excel_file = 'D:\\cherry\\file.xlsx'
# Определяем правильную кодировку файла HTML
with open(html_file, 'rb') as f:
content = f.read()
charset = BeautifulSoup(content, "html.parser").original_encoding
# Если кодировка не определена, используем UTF-8
if not charset:
charset = "utf-8"
# Читаем HTML-файл
with open(html_file, encoding=charset) as f:
soup = BeautifulSoup(f, 'html.parser')
# Сохраняем данные в Excel-файл
wb = Workbook()
ws = wb.active
for i, link in enumerate(soup.find_all('a')):
ws.cell(row=i+1, column=1, value=link.get('href'))
ws.cell(row=i+1, column=2, value=link.text)
wb.save(excel_file)
print('Folder save')
SyntaxError: Non-UTF-8 code starting with '\xce' in file C:\Users\ZORD\source\repos\paser_html_to_excel_v2\paser_html_to_excel_v2\paser_html_to_excel_v2.py on line 8, but no encoding declared; see https://peps.python.org/pep-0263/