알고리즘/Python

Python: sys.stdin.read() sys.stdin.readline() 차이점 정리

두넌 2023. 5. 16.

sys.stdin.read() sys.stdin.readline() 차이점 정리


sys.stdin.read()와 sys.stdin.readline()은 모두 sys.stdin에서 입력을 읽는 메서드입니다.
그러나 그들 사이에 중요한 차이점이 있습니다.


sys.stdin.read()

이 메서드는 sys.stdin에서 입력을 읽고 문자열로 반환합니다. 입력 스트림의 끝에 도달할 때까지 모든 내용을 한 번에 읽습니다. 일반적으로 파일의 내용 전체를 한 번에 읽을 때 사용합니다.

 

sys.stdin.readline()

이 메서드는 sys.stdin에서 입력을 한 줄씩 읽고 문자열로 반환합니다.
개행 문자(줄 바꿈)까지 읽은 후 문자열을 반환합니다. 따라서 각 호출은 한 줄을 읽습니다.
주로 대화형 입력이나 줄 단위로 구성된 데이터를 읽을 때 사용됩니다.

 

예시

다음과 같은 입력이 있다고 가정해 봅시다:

Hello
World

sys.stdin.read()를 사용하면 문자열 "Hello\nWorld\n"이 반환됩니다.

sys.stdin.readline()을 첫 번째 호출할 때는 문자열 "Hello\n"이 반환되고,
두 번째 호출할 때는 문자열 "World\n"이 반환됩니다.

 

따라서, sys.stdin.read()는 전체 입력을 읽고 처리할 때 사용되고, sys.stdin.readline()은 한 줄씩 입력을 처리할 때 사용됩니다.

 

고찰


import sys

N = int(input())
nums = list(map(int, sys.stdin.readlines()))

for i in sorted(nums):
    print(i)

sys.stdin.readlines() 를 사용하면 여러 숫자가 엔터 키 간격으로 입력되었을 대에도 각 숫자를 개별 요소로 가지는 문자열 리스트를 반환함

sys.stdin.readlines() 는 개행 문자(줄 바꿈) 을 기준으로 입력을 분리하여 리스트에 저장한다!

댓글