Python/Basic
blockchain 테스트에 사용한 python 함수 - waitingCount
Tongchun
2018. 12. 18. 18:12
blockchain 테스트에 사용한 python 함수를 설명합니다.
- getDateStrings - 날짜 - 년, 월, 일, 시, 분, 초를 확인하는 함수입니다.
- getLogfileNameWithPath - 로그 기록을 위해 폴더를 생성하고 경로를 반환합니다.
- getRequestId - ramdom으로 숫자를 반환합니다.
- moveFile - 특정 파일을 로그 폴더로 이동시킵니다.
- saveResultData - 데이터를 파일에 저장합니다.
- convertToHex - String을 hex로 변환합니다.
- leftPad64 - 왼쪽에 (또는 오른쪽에) 0을 채워 고정된 길이로 만듭니다.
- getTestConfig - json 형태의 config 파일을 만들고 불러옵니다.
- waitingCount - time.sleep() 할 때 동적으로 카운트를 셉니다.
- callRPC - requests 모듈을 사용해 http API를 호출합니다.
- callWS - websocket 모듈을 사용해 API 통신을 합니다.
Python으로 테스트 스크립트를 작성하고 실행하다보니 Terminal 창을 계속 보고있게 됩니다.
그리고 API 호출 후 그 다음 API를 호출할때 까지 몇 초간 기다려야 하는 상황도 생깁니다.
이때 동적으로 카운트를 세도록 해봤습니다.
# coding=utf-8 import sys import time class nGleUtils(): def waitingCount(self, frontString, second, rearString): ''' 기다리기 심심하니 숫자라도 찍어봅시다. ex) self.ngle.waitingCount("Waiting for", 5, "seconds until writing in block a transaction.") ''' for i in range(second, -1, -1): sys.stdout.write(F"\r{frontString} {i} {rearString}") sys.stdout.flush() time.sleep(1) sys.stdout.write("\n\n") if __name__== "__main__": ngle = nGleUtils() ngle.waitingCount("Waiting for", 5, "seconds until writing in block a transaction.")
sys.stdout.write과 sys.stdout.flush를 사용하면 텍스트를 동적으로 변경할 수 있게됩니다.
waitingCount 함수는 앞 문장과 카운트할 초 그리고 뒷 문장을 input으로 주면 됩니다.
실행하면 Wating for 5 seconds until writing in block a transaction. 이라고 뜨며 5. 4. 3. 2. 1. 0까지 카운트하게 됩니다.