π ΠΠ°ΠΊ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΊΡΡΡΠΎΡΠ° python: ΠΏΠΎΡΠ°Π³ΠΎΠ²ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΊΡΡΡΠΎΡΠ° Π² Python, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ tell()
Π΄Π»Ρ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΈΠ»ΠΈ ΠΌΠ΅ΡΠΎΠ΄ find()
Π΄Π»Ρ ΡΡΡΠΎΠΊΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅ΡΡ:
# ΠΡΠΈΠΌΠ΅Ρ Π΄Π»Ρ ΡΠ°ΠΉΠ»Π°
with open('file.txt', 'r') as file:
position = file.tell()
print(f'ΠΠΎΠ·ΠΈΡΠΈΡ ΠΊΡΡΡΠΎΡΠ°: {position}')
# ΠΡΠΈΠΌΠ΅Ρ Π΄Π»Ρ ΡΡΡΠΎΠΊΠΈ
text = "ΠΡΠΈΠΌΠ΅Ρ ΡΠ΅ΠΊΡΡΠ°"
index = text.find("ΡΠ΅ΠΊΡΡΠ°")
print(f'ΠΠΎΠ·ΠΈΡΠΈΡ ΠΊΡΡΡΠΎΡΠ°: {index}')
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΠ°ΠΊ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΊΡΡΡΠΎΡΠ° Python
Python - ΠΌΠΎΡΠ½ΡΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ ΡΠΈΡΠΎΠΊΠΈΠΌ Π½Π°Π±ΠΎΡΠΎΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ. ΠΡΠ»ΠΈ Π²Π°ΠΌ ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΠ»ΠΎΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΊΡΡΡΠΎΡΠ° Π² Python, ΡΠΎ Ρ Π²Π°Ρ Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ.
1. ΠΠ°ΡΠΈΠ°Π½Ρ: ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ pyautogui
ΠΠΎΠ΄ΡΠ»Ρ pyautogui ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ Ρ ΠΌΡΡΡΡ ΠΈ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠΎΠΉ, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΊΡΡΡΠΎΡΠ°. ΠΠ»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π΅Π³ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
pip install pyautogui
ΠΠΎΡΠ»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ pyautogui, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ΅ΠΊΡΡΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΊΡΡΡΠΎΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ position()
. ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ:
import pyautogui
# ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΊΡΡΡΠΎΡΠ°
x, y = pyautogui.position()
print(f"ΠΠΎΠ·ΠΈΡΠΈΡ ΠΊΡΡΡΠΎΡΠ°: x = {x}, y = {y}")
ΠΡΠΎΡ ΠΊΠΎΠ΄ Π²ΡΠ²Π΅Π΄Π΅Ρ ΡΠ΅ΠΊΡΡΠΈΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΊΡΡΡΠΎΡΠ° Π½Π° ΡΠΊΡΠ°Π½Π΅.
2. ΠΠ°ΡΠΈΠ°Π½Ρ: ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ ctypes
ΠΠΎΠ΄ΡΠ»Ρ ctypes ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ· Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΡ Π½Π° ΡΠ·ΡΠΊΠ΅ C. ΠΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠΈΠΌ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ Π΄Π»Ρ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΊΡΡΡΠΎΡΠ° ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ user32.dll:
import ctypes
# ΠΠ°Π³ΡΡΠ·ΠΊΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ user32.dll
user32 = ctypes.windll.user32
# ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΊΡΡΡΠΎΡΠ°
x = ctypes.c_long()
y = ctypes.c_long()
user32.GetCursorPos(ctypes.byref(x), ctypes.byref(y))
print(f"ΠΠΎΠ·ΠΈΡΠΈΡ ΠΊΡΡΡΠΎΡΠ°: x = {x.value}, y = {y.value}")
ΠΡΠΎΡ ΠΊΠΎΠ΄ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π²Π°ΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΊΡΡΡΠΎΡΠ° ΠΈ Π²ΡΠ²Π΅ΡΡΠΈ Π΅Π΅ Π½Π° ΡΠΊΡΠ°Π½.
3. ΠΠ°ΡΠΈΠ°Π½Ρ: ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ msvcrt
ΠΠΎΠ΄ΡΠ»Ρ msvcrt ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΡ getch()
, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΡΠΈΡΡΠ²Π°Π΅Ρ ΡΠΈΠΌΠ²ΠΎΠ» Ρ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ Π±Π΅Π· ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π΅Π³ΠΎ Π½Π° ΡΠΊΡΠ°Π½Π΅. ΠΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠΈΠΌ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΊΡΡΡΠΎΡΠ° Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ:
import msvcrt
def get_cursor_position():
temp = msvcrt.getch()
return ord(temp[0]), ord(temp[1])
# ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΊΡΡΡΠΎΡΠ°
x, y = get_cursor_position()
print(f"ΠΠΎΠ·ΠΈΡΠΈΡ ΠΊΡΡΡΠΎΡΠ°: x = {x}, y = {y}")
ΠΡΠΎΡ ΠΊΠΎΠ΄ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π²Π°ΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΊΡΡΡΠΎΡΠ° Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ Π·Π½Π°Π΅ΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ², ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΊΡΡΡΠΎΡΠ° Π² Python. ΠΠ°ΠΌ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΠΌΠΎΠ΄ΡΠ»ΠΈ pyautogui, ctypes ΠΈ msvcrt, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΡΠ²ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΊΡΡΡΠΎΡΠ°. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ±ΡΠ°ΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠΉ Π²Π°ΡΠΈΠ°Π½Ρ Π΄Π»Ρ Π²Π°ΡΠ΅ΠΉ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ.