don't stop believing

blockchain 테스트에 사용한 python 함수 - waitingCount 본문

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까지 카운트하게 됩니다.



Comments