Задать вопрос
  • Как правильно парсить CSV?

    @whorsash Автор вопроса
    Николай Карелин, Если был был большой опыт, то наверное я бы сразу понял о чем речь, а так меньше полгода точно. Изучаю, изучаю, спрашиваю и т.д.
    Мне проще на примерах понять язык и его возможности.
  • Как правильно парсить CSV?

    @whorsash Автор вопроса
    Здравствуйте, Николай Карелин! Можете по подробнее рассказать?

    я бы читал это в память при старте сервера

    О чем речь?

    сохранял в словарь и потом выгребал по коду в запросе.

    О каком словаре идет речь?

    У меня есть файл excel, там свыше 1000 строк.
    Мне нужно, чтобы моя программа выдавала данные по номеру, введенному юзером.

    Как я написал выше код, невыгодно получается мне печатать каждое наименование и выдавать для каждого наименования описание, фотографии и ссылки на страницу.
  • Как правильно парсить CSV?

    @whorsash Автор вопроса
    Это понятно. Но теоретически это поможет мне решить мой заданный вопрос, о том, что при вводе номера, программа достанет нужную информацию под этим номером?

    Чтобы не вбивать мне каждый раз код, как указал выше в своем вопросе.
  • Как правильно парсить CSV?

    @whorsash Автор вопроса
    sim3x, Я не очень понял о чем речь

    Файл вставлять не нужно
    про какой файл речь?

    досточно вставить первые 10-20 строк из файла
    это о чем?

    Ваша задача легко решается после изучения питона
    какой курс порекомендуете?
  • Как лучше и как сделать?

    @whorsash Автор вопроса
    Андрей, Андрей. Я тут код подправил.
    Программа сработала, но я, наверное, пойду в лоб и буду дорабатывать код.

    Вот мой код:
    import telebot
    from telebot import types
    
    token = 'Токен'
    bot= telebot.TeleBot(token)
    
    @bot.message_handler(commands=['start'])
    def start(m):
      sent=bot.send_message(m.chat.id,
        '''Добро пожаловать в группу''')
      logotip = open('C:\\Users\\user\\logo.jpg', 'rb')
      bot.send_photo(m.chat.id, logotip)
      bot.register_next_step_handler(first)
    def first(m):
      sent=bot.send_message(m.chat.id,
        '''Введите номер наименования''')
      bot.register_next_step_handler(name)
       
    def name(m):
       if m.text == '123':
        a123_1 = open('C:\\Users\\user\\123\\123_1.jpg', 'rb')
        a123_2 = open('C:\\Users\\user\\123\\123_2.jpg','rb')
        a123_3 = open('C:\\Users\\user\\123\\123_3.jpg', 'rb')
        bot.send_photo(m.chat.id, a123_1)
        bot.send_photo(m.chat.id, a123_2)
        bot.send_photo(m.chat.id, a123_3)
        bot.send_message(m.chat.id,
        '''Описание наименования 123''')
        pdf123 = open('C:\\Users\\user\\123\\123.pdf', 'rb')
        doc123 = open('C:\\Users\\user\\123\\123.docx', 'rb')
        bot.send_document(m.chat.id, pdf123)
        bot.send_document(m.chat.id, doc123)
    
       elif m.text == '234':
        a234_1 = open('C:\\Users\\user\\234\\234_1.jpg', 'rb')
        a234_2 = open('C:\\Users\\user\\234\\234_2.jpg', 'rb')
        a234_3 = open('C:\\Users\\user\\234\\234_3.jpg', 'rb')
        bot.send_photo(chat.id, a234_1)
        bot.send_photo(chat.id, a234_2)
        bot.send_photo(chat.id, a234_3)
        bot.send_message(m.chat.id,
        '''Так решается вопрос, короче тут тоже описание наименования 234''')
        pdf234 = open('C:\\Users\\user\\234\\234.pdf', 'rb')
        doc234 = open('C:\\Users\\user\\234\\234.docx', 'rb')
        bot.send_document(m.chat.id, pdf234)
        bot.send_document(m.chat.id, doc234)
    
       else:
        bot.send_message(m.m.chat.id,
        '''Упс... Такого номера наименования у нас нет...
        повторите ввод''')
    
    
    bot.polling(none_stop=True, interval=0)


    Буду дорабатывать своего бота, чтобы бот предлагал функцию отправлять сообщения в случае несоответствия. И чтобы предлагал повторный поиск.
  • Как лучше и как сделать?

    @whorsash Автор вопроса
    Андрей, Хорошо)
    Давайте начнем с 1го пункта все-таки.
    bot.send_message(m.chat.id, description234)


    Что вы имеете ввиду под description_id?
    Я так понял что это переменная описания, то есть правильно было бы написать код так?
    description_id = ''' Описание id
    многострочное описание'''


    Куда его лучше вставлять? В начале кода или по ходу программирования?

    Пункт 2.
    Создать объект который будет описывать логическую единицу из файла описания. Конкретно на вашем примере это цифра(ид) и ассоциированные с ней данные(фото, текст и тд)


    Что за объект? Что под ним подразумевается? Я настолько глубоко в программирование не залезал, но хотелось бы понять, что значит логическая единица? (Гуглил, очень много разной информации... :( )Как я понял, это id?
    Как правильно было бы написать код?

    Пункт 3.
    Создать объект который будет работать чисто с фаловой системой, читать из файла описание и возвращать список объектов из пункта 2


    Это мой код:
    if m.text == '123':
    a123_1 = open('C:\\Users\\user\\123\\123_1.jpg', 'rb')
    a123_2 = open('C:\\Users\\user\\123\\123_2.jpg','rb')
    a123_3 = open('C:\\Users\\user\\123\\123_3.jpg', 'rb')
    bot.send_photo(m.chat.id, a123_1, a123_2, a123_3)
    bot.send_photo(m.chat.id, "FILEID")
    bot.send_message(m.chat.id,
    '''Описание наименования 123''')
    pdf123 = open('C:\\Users\\user\\123\\123.pdf', 'rb')
    doc123 = open('C:\\Users\\user\\123\\123.docx', 'rb')
    bot.send_document(m.chat.id, pdf123, doc123)
    bot.send_document(m.chat.id, "FILEID")


    Вы предлагаете изменить на Ваш:
    bot.send_photo(Obj.id,Obj.getFotoList())
    bot.send_photo(Obj.id, "FILEID")
    bot.send_message(Obj.id,
    Obj.getDescription())
    bot.send_document(Obj.id, getPdfAndDoc())
    bot.send_document(Obj.id, "FILEID")


    Как вы писали
    Создаем некий объект(Obj) со следующими полями
    список фоток
    список pdf
    список docx
    описание наименования


    Вот некий объект это отдельный файл программы?
    obj это переменная или файл типа csv/xml?

    кусок кода getFotoList():
    get это я так понял, функция, которая отвечает за получение данных из файла типа csv/xml. Верно?
    FotoList() - это область в файле csv/xml?

    то есть код getFotoList() это функция, которая получается из файла типа csv/xml данные под графой FotoList()?
  • Как лучше и как сделать?

    @whorsash Автор вопроса
    Андрей,
    Можно с вами пообщаться лично?
    А то не очень понял, что вы написали в частности, 2 и 3 пункт.
  • Как лучше и как сделать?

    @whorsash Автор вопроса
    Ох... Как сложно)

    Надо бы переварить информацию)

    Попробую вариант первый, я пока изучаю язык. И пытаюсь разобраться.
    Будет много номера наименования чего-то.

    Я вот пытался написать код тут
    import telebot
    from telebot import types
    
    token = 'Токен'
    bot= telebot.TeleBot(token)
    
    @bot.message_handler(commands=['start'])
    def start(m):
      sent=bot.send_message(m.chat.id,
        '''Добро пожаловать в группу''')
      logotip = open('C:\\Users\\user\\logo.jpg', 'rb')
      bot.send_photo(m.chat.id, logotip)
      bot.send_photo(m.chat.id, "FILEID")
      bot.register_next_step_handler(first)
    def first(m):
      sent=bot.send_message(m.chat.id,
        '''Введите номер наименования''')
      bot.register_next_step_handler(name)
       
    def name(m):
       if m.text == '123':
        a123_1 = open('C:\\Users\\user\\123\\123_1.jpg', 'rb')
        a123_2 = open('C:\\Users\\user\\123\\123_2.jpg','rb')
        a123_3 = open('C:\\Users\\user\\123\\123_3.jpg', 'rb')
        bot.send_photo(m.chat.id, a123_1, a123_2, a123_3)
        bot.send_photo(m.chat.id, "FILEID")
        bot.send_message(m.chat.id,
        '''Описание наименования 123''')
        pdf123 = open('C:\\Users\\user\\123\\123.pdf', 'rb')
        doc123 = open('C:\\Users\\user\\123\\123.docx', 'rb')
        bot.send_document(m.chat.id, pdf123, doc123)
        bot.send_document(m.chat.id, "FILEID")
    
       elif m.text == '234':
        a234_1 = open('C:\\Users\\user\\234\\234_1.jpg', 'rb')
        a234_2 = open('C:\\Users\\user\\234\\234_2.jpg', 'rb')
        a234_3 = open('C:\\Users\\user\\234\\234_3.jpg', 'rb')
        bot.send_photo(chat.id, a234_1, a234_2, a234_3)
        bot.send_message(m.chat, "FILEID")
        bot.send_message(m.chat.id,
        '''Так решается вопрос, короче тут тоже описание наименования 234''')
        pdf234 = open('C:\\Users\\user\\234\\234.pdf', 'rb')
        doc234 = open('C:\\Users\\user\\234\\234.docx', 'rb')
        bot.send_document(m.chat.id, pdf234, doc234)
        bot.send_document(m.chat.id, "FILEID")
    
       else:
        bot.send_message(m.m.chat.id,
        '''Упс... Такого номера наименования у нас нет...
        повторите ввод''')
    
    
    bot.polling(none_stop=True, interval=0)


    Вот думаю, теперь как сделать, с помощью вами предложенного варианта.

    Да, у меня код неправильно написан. двойные слэши использованы для windows...

    Короче мне многому придется учиться и научиться...