Технологии
Почему срабатывает if в любом случае? - вопрос №5065340
import pyperclip import time import re a = '' while True: clipboard = pyperclip.paste() b = bool(re.match(r'[a-zA-z0-9]', clipboard)) print(b) b = False if clipboard != a and b == True: with open('monitoring.txt', 'a', encoding='UTF=8') as f: f.write(clipboard) f.write('\n') a = clipboard time.sleep(2)
февраль 8, 2023 г.
-
Всего ответов: 1
-
В данном случае условие b == True не является нужным, так как в строке b = bool(re.match(r'[a-zA-z0-9]', clipboard)) переменная b уже имеет значение типа bool. Проверка b == True эквивалентна просто проверке b.
Если вы хотите проверять, что clipboard содержит только латинские буквы и цифры, то в регулярном выражении следует указать начало и конец строки (^ и $ соответственно): re.match(r'^[a-zA-Z0-9]+$', clipboard).
В итоге ваш код может выглядеть так:
import pyperclip
import time
import re
a = ''
while True:
clipboard = pyperclip.paste()
b = bool(re.match(r'^[a-zA-Z0-9]+$', clipboard))
print(b)
if clipboard != a and b:
with open('monitoring.txt', 'a', encoding='UTF=8') as f:
f.write(clipboard)
f.write('\n')
a = clipboard
time.sleep(2)
Похожие вопросы
Добрый день! Есть массив данных с миллионами строк, обрабатываемый в Python, при выводе в csv формат файл становится очень тяжелым более 15гб =>
март 29, 2024 г.
Решено
помогите разобрать код: countries_temperature = [['Таиланд', [75.2, 77, 78.8, 73.4, 68, 75.2, 77]], ['Германия', [57.2,
март 10, 2024 г.