일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 프로젝트
- 유데미
- Tequila
- 부트스트랩
- Game
- 게임
- 쉬티
- SMTP
- 웹페이지
- HTML
- 파싱
- API플랫폼
- 웹크롤링
- phython
- ndarray
- class
- Sheety
- 상태코드
- twilio
- udemy
- API
- Python
- 파이썬
- Pygame
- HTTP
- 오류
- 프로그램
- Endpoint
- 계산기
- 최저가
Archives
- Today
- Total
데이터 분석가
파이썬 가장 위험한 글쓰기 (udemy project 8) 본문
안녕하세요 !
이번 시간에는 5초 이상 글쓰기를 멈추면 써왔던 글들이 모두 초기화되는
파이썬 코드를 구축해보겠습니다
import time
import msvcrt
import threading
class TextInput:
def __init__(self):
# 텍스트 초기화
self.text = ""
# 스레드 간 동기화를 위한 락 초기화
self._lock = threading.Lock()
def update_text(self):
while True:
# 키보드 입력이 있는지 확인
if msvcrt.kbhit():
# 키보드에서 문자 가져오기
ch = msvcrt.getche().decode("utf-8")
with self._lock:
# 입력된 텍스트 추가
self.text += ch
def start_listening(self):
# update_text 함수를 별도 스레드에서 실행시킴
threading.Thread(target=self.update_text, daemon=True).start()
if __name__ == "__main__":
text_input = TextInput()
# 키보드 입력 수신 시작
text_input.start_listening()
print("Start typing... (5 seconds to reset)")
last_text = ""
start_time = time.time()
while True:
with text_input._lock:
current_text = text_input.text
# 새로운 텍스트가 있을 경우
if current_text != last_text:
print("Your input: " + current_text, end="\r")
last_text = current_text
start_time = time.time()
# 5초 동안 입력이 없을 경우
if time.time() - start_time > 5:
with text_input._lock:
# 텍스트 초기화
text_input.text = ""
print("5 seconds passed. Your input was reset.", end="\r")
last_text = ""
start_time = time.time()
time.sleep(0.1) # 무한 루프가 너무 빠르게 돌아가지 않게 하는 대기 시간
사실 파이썬은 터미널 기반 프로그램으로 실시간으로 신호를 주고 받는 형태의 동적인 작업은 어렵습니다..
그래서 웹 기반 동적 언어인 자바 스크립트를 이용해야 하는데.., 제가 자바 스크립트를 잘 쓰지 못하는 관계로..
부득이하게 파이썬 언어를 이용해서 간단히 구축해 보았습니다 !
'유데미 부트캠프 프로젝트(Final)' 카테고리의 다른 글
이미지 파일 색상 분석 (Udemy Project 10) (0) | 2023.06.30 |
---|---|
PDF파일 음성 변환 Pdf2Voice (Udemy Project 9) (0) | 2023.06.29 |
ToDoList 웹 페이지 구축 (Udemy Project 7) (0) | 2023.06.28 |
노트북 하기 좋은 카페 찾기 프로젝트(Udemy Final Project 6) (0) | 2023.06.27 |
파이썬 breakout game 프로젝트(Udemy Final Project 5) (0) | 2023.06.26 |
Comments