input() 함수에 대한 타임아웃 또는 일정 시간 경과 후에 자동으로 실행

input() 함수에 대한 타임아웃 또는 일정 시간 경과 후에 자동으로 실행

더시민 0 52 0

비동기 프로그래밍으로 input() 함수에  타임 아웃을 구현하거나 일정 시간이 지나면 자동으로 실행을 진행하려는 경우 

import asyncio

# 입력을 받는 비동기 함수
async def get_input():
    user_input = await asyncio.wait_for(loop.run_in_executor(None, input, "10초 안에 입력하세요: "), timeout=10)
    return user_input

# 메인 함수
async def main():
    try:
        # 입력을 받거나 타임아웃까지 대기
        user_input = await get_input()
        print("입력값:", user_input)
        # 여기에 실행되어야 할 코드를 작성하세요.
    except asyncio.TimeoutError:
        print("입력이 없어 자동으로 실행됩니다.")
        # 여기에 자동으로 실행되어야 할 코드를 작성하세요.

# asyncio 이벤트 루프 생성
loop = asyncio.get_event_loop()

# main 함수 실행
loop.run_until_complete(main())

# 이벤트 루프 종료
loop.close()
 

위의 코드에서는 get_input() 함수를 async 키워드로 정의하여 비동기적으로 입력을 받습니다. asyncio.wait_for() 함수를 사용하여 입력을 받거나 지정한 타임아웃 시간(초)까지 대기합니다.

main() 함수에서는 get_input() 함수를 호출하고, 입력이 받아지면 입력값을 출력한 후 필요한 추가 코드를 작성합니다. 타임아웃이 발생한 경우 asyncio.TimeoutError 예외가 발생하며, 이를 처리하여 "입력이 없어 자동으로 실행됩니다."라는 메시지를 출력하고 자동 실행 코드를 작성합니다.

코드 실행을 위해 asyncio 이벤트 루프를 생성하고, loop.run_until_complete(main())을 호출하여 main() 함수를 실행합니다. 실행이 완료되면 이벤트 루프를 종료합니다.

참고: 이 코드는 입력을 받거나 타임아웃이 발생할 때 자동으로 실행하는 예시일 뿐이며, 추가적인 동작을 수행하려면 # 여기에 실행되어야 할 코드를 작성하세요. 부분에 원하는 코드를 작성해야 합니다.

 

 

0 Comments
제목
Category
글이 없습니다.
Facebook Twitter GooglePlus KakaoStory KakaoTalk NaverBand