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

На сайте, который я использую в качестве руководства, есть:

def main():
     pass

По его словам, окно оболочки остается открытым, и он может запускать различные функции, например, получать x,y координаты положения мыши и делать снимки экрана.

Когда я запускаю свой код точно так, как он представлен в руководстве, он сразу же открывается и закрывается.

Что я не хочу, так это что-то вроде "сделать так, чтобы нажатие клавиши Enter закрывало оболочку вместо этого", что должно происходить, так это то, что окно остается открытым, чтобы я мог вводить различные функции.

Что я делаю неправильно? Может быть, я должен просто импортировать код в другую оболочку и запускать функции в ней?

Код:

import os   
import time
import ImageGrab

x_pad = 0   
y_pad = 61

def screenGrab():   
    box = (x_pad,y_pad,x_pad+1919,y_pad+970)    
    im = ImageGrab.grab(box)    
    im.save(os.getcwd() + '\\full_snap__' + str(int(time.time())) + '.png','PNG')

def main(): 
    pass    

if __name__ == '__main__':    
    main()

Это руководство: http://code.tutsplus.com/tutorials/how-to-build-a-python-bot-that-can-play-web-games--active-11117

whydoesmycodehateme

Ответов: 1

Ответы (1)

У вас есть три пути:

  1. Запустите intepreter с опцией -i, как предложил Ulrich в комментариях:

    python -i my-script.py
    

    Таким образом, интерпретатор останется открытым, как только ваш скрипт закончит выполнение, и будет показан запрос.

  2. .
  3. Используйте pdb. Он часто используется для отладки и имеет интерфейс, отличный от обычного приглашения Python. Если вы не знакомы с ним, возможно, это не лучший вариант в вашем случае. Замените pass этими двумя строками:

    import pdb
    pdb.set_trace()
    
  4. Используйте code. Это даст вам интерфейс, более похожий на обычную оболочку Python, и может стать альтернативой pdb, если вы с ним не знакомы:

    .
    import code
    code.interact()
    

Кстати, вы не делали ничего неправильного как такового. Оператор pass не предназначен для "остановки Python и запуска подсказки", он просто нужен как заполнитель для функций или циклов с пустым телом.

2022 WebDevInsider