Pyautogui использует size (), чтобы получить два целых числа - PullRequest
0 голосов
/ 22 марта 2019

, поэтому я пытаюсь создать бота на python, и для этого мне понадобится размер экрана в виде двух целых чисел (координата x и координата y). Я использую pyautogui для этого случая, но функция size () возвращает только строку:

Size(width=2560, height=1440)

Как бы я "извлек" эти значения в целочисленные переменные?

edit: мне удалось исправить мою проблему, это какой-то spagetthi код, но я могу почистить его позже, на тот случай, если у кого-то возникнет такая же проблема:

import pyautogui


screen_size = str(pyautogui.size())
screen_size_x, screen_size_y = screen_size.split(",")
screen_size_x= screen_size_x.replace("Size(width=","")
screen_size_y = screen_size_y.replace("height=","")
screen_size_y = screen_size_y.replace(")","")
screen_size_y = screen_size_y.replace(" ","")
screen_size_x = int(screen_size_x)
screen_size_y = int(screen_size_y)
print(screen_size_x)
print(screen_size_y)

1 Ответ

0 голосов
/ 22 марта 2019

Я нашел несколько примеров онлайн использования pyautogui.size (). Во всех этих примерах этот метод возвращает кортеж из двух элементов, содержащий ширину и высоту. Похоже, ваш код может быть таким простым:

screen_size_x, screen_size_y = pyautogui.size()
print(screen_size_x)
print(screen_size_y)

Это показано в первом примере в документах pyautogui: https://github.com/asweigart/pyautogui/blob/master/README.md

Если вам нужно было проанализировать указанную вами строку, вот более чистый способ сделать это:

import re
str = "Size(width=2560, height=1440)"
m = re.search(r"width=(\d+).*height=(\d+)", str)
screen_size_x, screen_size_y = int(m.group(1)), int(m.group(2))
print(screen_size_x)
print(screen_size_y)
...