import sys
import logging
from time import sleep
while True:
sys.stdout.flush()
print('Hello')
logging.warning('I told you so')
logging.warning('Watch out!')
sleep(1)
То и правда можно грепнуть то что пишет print
python delit.py 2>&1 | grep Hello
Hello
Hello
Питон по умолчанию буферизует вывод - не выводит в stdout сразу.
Если подождешь подольше, то grep потом выведет сразу пачку Hello, когда буфер наполнится и будет выведен в stdout целиком.
Можно сделать это в нужный тебе момент, вызвав sys.stdout.flush().