Önce küfürlerle bir çözüm olduğunu biliyorum.
Programım, her saniye çalışan bir süre döngüdür. Her saniyede olan veya basılan son anahtarı almak istiyorum. Bu nedenle, döngü uyurken bir tuşa basmanız durumunda anahtarın kaydedilmesini istiyorum, böylece daha fazla basılmadığında bile en son basılan anahtarı alabilirim. Kaydedilen anahtarın, aldıktan sonra "silinmiş" olmasını istemiyorum. Böylece, kullanıcı "a" tuşuna bastığında, başka bir tuşa bastığında her saniyesini almak istiyorum. Belirli bir tuşa basıldığında, metin yazdırmak istiyorum. küfürler ile çözüldüPython'da son tuşa nasıl basılır?
./test.py > file.txt
Benim piton programm şöyle görünür: Bu metin i stdout yeniden yönlendirmesi kullanarak bir dosyaya yazmak istiyorum
import curses
from time import sleep
stdscr=curses.initscr()
stdscr.nodelay(1)
curses.noecho()
curses.cbreak()
while True:
char=stdscr.getch()
if char == 111: #111 = "o" key
print("test")
break
elif char == 97 #97 = "a" key
#code that have to be run every second
#if the a key is the last pressed key!
sleep(1)
curses.nocbreak()
curses.echo()
curses.endwin()
bu çözümün obout sorun küfürler beni deli sağlamasıdır çıktı. Sadece bir defa "o" tuşuna basınız ve programm durdu sonra file.txt şuna benzer:
^[[?1049h^[[1;30r^[(B^[[m^[[4l^[[?7h^[[H^[[2Jtest
^[[30;1H^[[?1049l^M^[[?1l^[>
Ama bu gibi görünmelidir:
test
Birisi eğer çok minnettar olacaktır bir cevap yazıyor. Python'un tuşa basma olaylarını kullanan programlarda en iyi seçim olmadığını biliyorum. Ama bunun için python kullanmamın nedenleri var.
Yanıtlarınız için şimdiden çok teşekkür ederiz.
- o zaman "deli olmazdı Dosyanızdaki küfürlerden çıktı ... –
.Fifo'da başka bir program yazıyor ve her zaman yönlendirme kullanıyorum. Bu "formatı", bunları kolayca halledebileceğim şekilde tutmak istiyorum. – timakro