파일 처리 작업 관련해서
현재 진행 상황을 프린트 하는
작업을 진행하는데
print로 찍으면 여러번 나타남.
이거 자체가
프린트를 여러번찍게되니까
오버해드가 커져서서
뭔가 방법이 없을까 했는데
있음
방법은 콘솔 출력 이전위치로 돌아가도록 하는 편법인데
1. print 대신 sys.stdout.write를사용한다
2. print앞에 ("\r")을 붙여 콘솔 출력의 이전 위치로 돌아가도록 유도한다.
( 보다 정확한 표현법은 백 스페이스 ' \ r '또는 ( ' \ x08 ') char을 사용해야 한다고 합니다)
나는 1번 방법을 사용했습니다
< 소스 수정 전 >
def displayFilePercent( path, count ):
# 경로에 따른 디렉토리 파일 개수 구하기
all_file = len(os.listdir(path))
# 함수에서 변수로 받아온 현재 파일 개수
now_file = count
print("현재 진행 상황 : " + str((int(now_file)/int(all_file))*100) + "% (" + str(now_file) + "/" + str(all_file) + ")")
< 소스 수정 후 >
def displayFilePercent( path, count ):
# 경로에 따른 디렉토리 파일 개수 구하기
all_file = len(os.listdir(path))
# 함수에서 변수로 받아온 현재 파일 개수
now_file = count
# print(' a = {}, b = {}, c = {} '.format(a, b, c))
sys.stdout.write("현재 진행 상황 : \r{} % ( {} / {} )".format(str((int(now_file)/int(all_file))*100),str(now_file),str(all_file) ))
그렇다고 합니다
'개발일기 > 파이썬' 카테고리의 다른 글
centOS / Python 3.7 설치하기 - yum, gcc, openssl, bzip, libffi 사용 (0) | 2019.12.06 |
---|---|
python 엑셀 쓰기 (0) | 2019.07.04 |
셀레늄 네이버 로그인 (0) | 2019.04.23 |
django 크로스 도메인 설정 (0) | 2019.03.31 |
json 파일 읽고 쓰기 (0) | 2019.03.31 |