Выдает ошибку при чтении файла 024-11-04 23:52:27,114 - __main__ - ERROR - Ошибка при чтении файла

uglyru

Новичок
Пользователь
Ноя 4, 2024
4
0
1
Хотел создать бота по пробиву номера ,но когда вводишь номер в бота питон начинает читать файлы (базу данных) в excel и выдает ошибку при чтении
вот код:

Python:
import os
import re
import logging
from telegram import Update
from telegram.ext import Updater, CommandHandler, MessageHandler, Filters, CallbackContext

# Настройка логирования
logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', level=logging.INFO)
logger = logging.getLogger(__name__)


# Функция для поиска телефонного номера
def search_phone_number(phone_number: str, directory: str):
    results = []
    found = False

    for root, dirs, files in os.walk(directory):
        for file in files:
            file_path = os.path.join(root, file)
            try:
                with open(file_path, 'r', encoding='utf-16') as f:
                    for line_number, line in enumerate(f, start=1):
                        if phone_number in line:
                            found = True
                            result_entry = f"Номер найден в файле: {file_path}, строка {line_number}: {line.strip()}\n"
                            results.append(result_entry)
            except Exception as e:
                logger.error(f"Ошибка при чтении файла {file_path}: {e}")
                continue

    if not found:
        results.append("Номер не найден.")

    return results


# Команда /start
def start(update: Update, context: CallbackContext) -> None:
    update.message.reply_text("Привет! Введите номер телефона для поиска.")


# Обработка текстовых сообщений
def handle_message(update: Update, context: CallbackContext) -> None:
    phone_number = update.message.text.strip()
    # Проверка на валидность номера (пример для формата +1234567890)
    if not re.match(r'^\+\d{10,15}$', phone_number):
        update.message.reply_text("Пожалуйста, введите корректный номер телефона в формате +1234567890.")
        return

    directory = os.getcwd()  # Используем текущую директорию
    results = search_phone_number(phone_number, directory)

    # Отправляем результаты пользователю
    update.message.reply_text("\n".join(results))


def main():
    # Вставьте сюда ваш токен
    TOKEN = '7863337513:AAHFHRMdl-MFCQNXqemUvz0HEagc43QvWvo'

    updater = Updater(TOKEN)

    # Получаем диспетчер для регистрации обработчиков
    dispatcher = updater.dispatcher

    # Обработка команд
    dispatcher.add_handler(CommandHandler("start", start))
    dispatcher.add_handler(MessageHandler(Filters.text & ~Filters.command, handle_message))

    # Запуск бота
    updater.start_polling()
    updater.idle()


if __name__ == '__main__':
    main()
 

4olshoy_blen

Популярный
Пользователь
Ноя 13, 2022
416
113
43
весь трейсбэк в студию
 

uglyru

Новичок
Пользователь
Ноя 4, 2024
4
0
1
2024-11-05 00:25:12,474 - __main__ - ERROR - Ошибка при чтении файла C:\Users\vacne\Desktop\Trust\auducati3.1.6\Nyquist\xm.lsp: UTF-16 stream does not start with BOM
2024-11-05 00:25:12,474 - __main__ - ERROR - Ошибка при чтении файла C:\Users\vacne\Desktop\Trust\auducati3.1.6\Nyquist\rawwaves\mand1.raw: 'utf-16-le' codec can't decode bytes in position 118-119: illegal encoding
 

uglyru

Новичок
Пользователь
Ноя 4, 2024
4
0
1
с utf- 8 вот такое
ERROR - Ошибка при чтении файла C:\Users\vacne\Desktop\Trust\auducati3.1.6\Nyquist\rawwaves\mand2.raw: 'utf-8' codec can't decode byte 0xff in position 2: invalid start byte
2024-11-05 00:29:53,355 - __main__ - ERROR - Ошибка при чтении файла C:\Users\vacne\Desktop\Trust\auducati3.1.6\Nyquist\rawwaves\mand3.raw: 'utf-8' codec can't decode byte 0xff in position 2: invalid start byte
2024-11-05 00:29:53,355 - __main__ - ERROR - Ошибка при чтении файла C:\Users\vacne\Desktop\Trust\auducati3.1.6\Nyquist\rawwaves\mand4.raw: 'utf-8' codec can't decode byte 0xff in position 2: invalid start byte
2024-11-05 00:29:53,356 - __main__ - ERROR - Ошибка при чтении файла C:\Users\vacne\Desktop\Trust\auducati3.1.6\Nyquist\rawwaves\mand5.raw: 'utf-8' codec can't decode byte 0xf8 in position 4: invalid start byte
2024-11-05 00:29:53,356 - __main__ - ERROR - Ошибка при чтении файла C:\Users\vacne\Desktop\Trust\auducati3.1.6\Nyquist\rawwaves\mand6.raw: 'utf-8' codec can't decode byte 0x8d in position 3: invalid start byte
2024-11-05 00:29:53,356 - __main__ - ERROR - Ошибка при чтении файла C:\Users\vacne\Desktop\Trust\auducati3.1.6\Nyquist\rawwaves\mand7.raw: 'utf-8' codec can't decode byte 0xff in position 2: invalid start byte
2024-11-05 00:29:53,357 - __main__ - ERROR - Ошибка при чтении файла C:\Users\vacne\Desktop\Trust\auducati3.1.6\Nyquist\rawwaves\mand8.raw: 'utf-8' codec can't decode byte 0xff in position 2: invalid start byte
2024-11-05 00:29:53,357 - __main__ - ERROR - Ошибка при чтении файла C:\Users\vacne\Desktop\Trust\auducati3.1.6\Nyquist\rawwaves\mand9.raw: 'utf-8' codec can't decode byte 0xfd in position 4: invalid start byte
2024-11-05 00:29:53,358 - __main__ - ERROR - Ошибка при чтении файла C:\Users\vacne\Desktop\Trust\auducati3.1.6\Nyquist\rawwaves\mandpluk.raw: 'utf-8' codec can't decode byte 0xe4 in position 7: invalid continuation byte
2024-11-05 00:29:53,358 - __main__ - ERROR - Ошибка при чтении файла C:\Users\vacne\Desktop\Trust\auducati3.1.6\Nyquist\rawwaves\marmstk1.raw: 'utf-8' codec can't decode byte 0xff in position 2: invalid start byte
2024-11-05 00:29:53,358 - __main__ - ERROR - Ошибка при чтении файла C:\Users\vacne\Desktop\Trust\auducati3.1.6\Nyquist\rawwaves\sinewave.raw: 'utf-8' codec can't decode byte 0xc9 in position 3: invalid continuation byte
 

4olshoy_blen

Популярный
Пользователь
Ноя 13, 2022
416
113
43
тебе же нужно открыть экселевский файл на чтение, а зачем-то открываешь все файлы в текущей директории. Вот попались какие-то с расширением .lsp, .raw которые не понятны питону в кодировке utf-16.
Экселевские файлы открываются специальными библиотеками, например openpyxl
 

uglyru

Новичок
Пользователь
Ноя 4, 2024
4
0
1
тебе же нужно открыть экселевский файл на чтение, а зачем-то открываешь все файлы в текущей директории. Вот попались какие-то с расширением .lsp, .raw которые не понятны питону в кодировке utf-16.
Экселевские файлы открываются специальными библиотеками, например openpyxl
как это реализовать? а в кодировку что ставить?
 

4olshoy_blen

Популярный
Пользователь
Ноя 13, 2022
416
113
43
как это реализовать? а в кодировку что ставить?
пробовал открыть доку по той либе?
 

Форум IT Специалистов