dlwlsdn3642   2년 전

여러 입력을 한 번에 받을 때 open(0).read() 같은 형식으로 써왔습니다.

근데 원리가 궁금해서 print(open(0)) 해봤는데 아래와 같이 나왔습니다.

<_io.TextIOWrapper name=0 mode='r' encoding='utf-8'>

그런데 '0' 도 아니고 0으로 나왔고, 1이나 2같은 다른 정수는 오류가 나오더군요.

name에 문자열이 아닌 정수형은 0만 들어갈수 있는데 이게 무슨 의미인지 알려주시면 감사하겠습니다.


그리고 로컬에서 open(0).read()를 실행하면 input() 와 비슷하게 터미널에서 값을 받는 형태로 나타납니다.

이게 어떻게 된건지도 알려주시면 감사하겠습니다.

lcr7324   2년 전

0은 stdin, 1은 stdout, 2는 stderr에 각각 해당해서 그렇습니다.

File descriptor를 공부해보시면 이해하는 데 도움이 될 겁니다.

https://stackoverflow.com/ques...

dlwlsdn3642   2년 전

감사합니다!

명쾌하네요!

댓글을 작성하려면 로그인해야 합니다.