728x90
반응형

open() 내장 함수

open 함수는 파이썬의 기본 내장함수이다. 이름을 보면 알 수 있듯이 무언가를 열 때 사용하는 함수이다.

주로 파일을 열어서 읽어오고 저장할 때 주로 사용하게 된다.

기본적으로 with 문을 통해 open() 내장함수를 호출하는 것을 권장하고 있다.

with 문을 사용하지 않을 경우 파일 닫기를 스스로 해줘야 해서 불필요하게 코드가 지저분해지기 때문에

with 문을 함께 사용하는 것이 좋다.

 

open() 함수 문법

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

[주요 파라미터]
mode : 파일이 열리는 옵션, 모드 라고 한다.
        'r' : 읽기 모드
        'w' : 쓰기 모드, 파일의 내용이 있는 경우 덮어쓰게 된다. 파일이 없으면 생성한다.
        'a' : 쓰기 모드, 'w' 와 다르게 이미 파일이 존재하면 이어쓰기가 가능하다.
        'x' : 파일이 없으면 생성하고 쓰기 모드로 열린다. 파일이 있으면 에러 발생
        'b' : 바이너리 모드
        't' : 텍스트 모드

 

 

with 문과 함께 사용하기

  • test.txt 파일 내용

  • 파일 읽기
with open('/Users/jhnam/workspace/python/test.txt', mode='r') as f:
    test = f.read()
    print(test)
  • 실행 결과
테스트입니다.

 

 

open(0), open(1), open(2)

open() 내장 함수에 0, 1, 2 의 숫자가 들어가는 경우가 있다.

이 숫자들은 표준 스트림 이라고 하는 장치의 숫자를 의미한다.

여기서 표준 스트림 이란 운영체제에서 기본적으로 제공하는 추상화된 입출력 장치 라고 한다.

 

std 는 standard 의 약자이고

stdin 은 표준 입력으로 id 는 0 이다. 일반적으로 우리가 키보드로 입력한 값을 말한다.

stdout 은 표준 출력으로 id 는 1 이다. 일반적으로 현재 실행중인 쉘이나 콘솔, 터미널을 말한다.

stderr 은 표준 에러로 id 는 2 이다. 일반적으로 표준 출력과 동일하다.

 

따라서 open(0) 은 표준 입력, open(1) 은 표준 출력, open(2) 는 표준 에러를 불러오는 것이라고 볼 수 있다.

파이썬에서 open(0) 을 출력하면 다음과 같다.

>>> print(open(0))
<_io.TextIOWrapper name=0 mode='r' encoding='UTF-8'>
>>> print(open(1))
<_io.TextIOWrapper name=1 mode='r' encoding='UTF-8'>
>>> print(open(2))
# 실행하면 에러 발생으로 아무런 동작도 하지 않음
728x90
반응형

'프로그래밍 언어 > Python' 카테고리의 다른 글

Pydantic 이란  (0) 2023.08.10
Python reduce() 함수  (0) 2023.03.01
Python Asterisk(*)  (0) 2023.02.28
Python sorted() 함수 사용해보기  (0) 2023.01.23
Python %-string / format() / f-string 으로 출력해보기  (0) 2023.01.23
복사했습니다!