Ответы пользователя по тегу Python
  • Как посмотреть тело функции в python?

    @whoiam_frontend
    Python-разработчик
    Вызовите функцию help(sum), так же со всеми остальными. Функция help() используется для просмотра тела функции.
    Ответ написан
  • Как обработать ошибку UnicodeDecodeError и при этом продолжить чтение файла?

    @whoiam_frontend
    Python-разработчик
    Нужно обработать ошибку внутри цикла, а не во внешнем блоке try/except. Также, нужно указать кодировку файла при открытии его в функции open(). Например, если файл написан в utf-8, то код будет следующим:

    with open('1.txt', 'r', encoding='utf-8') as file:
        for line in file:
            try:
                print(line)
            except UnicodeDecodeError:
                print("Ошибка: не удалось расшифровать строку")
                continue


    Здесь мы указали, что файл должен открываться на чтение ("r"), и что его кодировка utf-8. Внутри цикла мы перехватываем ошибку UnicodeDecodeError при попытке расшифровать строку и продолжаем выполнение цикла с помощью команды continue. Таким образом, если возникает ошибка, мы получаем сообщение об ошибке и продолжаем чтение файла.
    Ответ написан
  • Программа с ютуб апи (ошибка) Как исправить?

    @whoiam_frontend
    Python-разработчик
    Ошибка говорит о том, что модуль youtube_api не найден в вашей программе. Вам нужно импортировать этот модуль перед его использованием. Добавьте строку:

    import youtube_api

    в начало вашего кода, перед созданием объекта YouTubeDataAPI.
    Ответ написан
  • Asyncio.StreamWriter перестает отсылать запросы, что делать?

    @whoiam_frontend
    Python-разработчик
    Проблема может быть связана с тем, что буфер записи (write buffer) StreamWriter переполнен, и поэтому запись заблокирована. Чтобы решить эту проблему, можно увеличить размер буфера записи StreamWriter с помощью параметра `high_water`:

    writer = await asyncio.open_connection(host, port)
    writer = asyncio.StreamWriter(writer, {'high_water': 256*1024}) # устанавливаем размер буфера в 256 КБ


    Также может быть полезно использовать метод `can_write()` для проверки, можно ли записать данные в настоящий момент:

    while request_screen:
         if writer.can_write():
             writer.write(b'screenshare')
             await writer.drain()
         else:
             await asyncio.sleep(0.1) # ждем некоторое время, пока буфер записи не освободится


    Это заставит цикл ожидать некоторое время, пока буфер записи не освободится, прежде чем продолжать отправку данных.
    Ответ написан
  • Как проверить запущен ли сервер или нет по его IP адресу на Python?

    @whoiam_frontend
    Python-разработчик
    Для того чтобы проверить существует ли сервер и запущен ли он, можно использовать модуль `socket` в Python. Вот пример функции, которая с помощью `socket` и `try`/`except` проверяет доступность указанного IP-адреса как сервера:

    python
    import socket
    
    def check_server(ip, port):
        # создаем объект socket
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        try:
            # подключаемся к серверу
            s.connect((ip, port))
            # закрываем соединение
            s.shutdown(socket.SHUT_RDWR)
            return True
        except:
            return False
        finally:
            s.close()


    Вы можете передать функции IP-адрес и порт сервера, который хотите проверить. Если сервер доступен, функция вернет `True`, в противном случае - `False`. Вы можете использовать эту функцию в любых ваших скриптах, чтобы проверить доступность сервера по его IP-адресу и порту.
    Ответ написан
    Комментировать
  • Ошибка IndentationError: unexpected indent?

    @whoiam_frontend
    Python-разработчик
    Это случилось из-за того, что где-то не расчитан отступ, т.е. он не равен 2 или 4 пробелам. Перепроверь все отступы. Или же, перед отступом ты забыл использовать ":"
    Ответ написан
    Комментировать
  • Как решить проблему с подключением к mysql?

    @whoiam_frontend
    Python-разработчик
    Нужно добавить имя базы данных.
    import pymysql
    
    my_db = pymysql.connect(
        host='localhost',
        user='root',
        password='',
        db='*'
    )
    
    my_cursor = my_db.cursor()
    my_cursor.execute('SHOW DATABASES')
    for db in my_cursor:
        print(db)

    В db вставьте имя бд
    Ответ написан