[Week2] (파이썬 프로그래밍) 05. I/O(입출력)

jjooki-entist·2022년 8월 31일
0

💡 I/O : Input/Output의 약자로 컴퓨터가 데이터를 입력받고 출력하는 모든 작업을 의미합니다.

Source : https://en.wikiversity.org/wiki/Hardware#/media/File:Computer1.png

  • 프로그램 입장에서 들어오는 모든 데이터를 Input, 나가는 모든 데이터를 Output이라고 한다.
  • 메인 메모리 입장에서 생각하는 들어오고 나가는 모든 데이터에 대해서 I/O 처리라고 부릅니다. (단, CPU와의 소통은 제외)
  • 사용자로부터 키보드로 입력받는 것을 stdin이라고 하며, 사용자에게 다시 결과를 모니터로 보여주는 것을 stdout이라고 합니다.

STDIN/OUT

# stdin/stdout example
a = input("숫자를 하나 입력하세요 : ")  # input 함수는 뭐든 str로 받아옵니다.
print(a)

>>> 숫자를 하나 입력하세요 : 5
>>> '5'
  • 프로그램은 메인 메모리 상에서 존재하기 때문에, 스토리지로부터 파일을 불러오는 것도 input이고, 프로그램의 결과를 스토리지에 저장하는 것도 output입니다.
  • 스토리지와 프로그램 사이의 I/O를 file I/O라고 합니다.

File I/O

# filein/fileout example
with open("data/a.txt", 'r') as f:
	data = f.readlines()
  • 파이썬에서는 with open() 함수를 통해서 텍스트 파일을 쉽게 불러올 수 있다.
  • ‘r’, ‘w’, ‘a’ 등의 mode를 바꿔서 파일을 다른 옵션으로 열 수 있다. (read, write, append 순)
  • 다른 타입의 파일을 열기 위해선 다른 라이브러리들이 필요하다.
    • csv, excel : pandas, csv, openpyxl 라이브러리를 사용할 수 있다.
    • png, jpg : PIL, opencv 라이브러리를 사용할 수 있다.
    • pk, pkl : pickle 라이브러리를 사용할 수 있다. (파일 타입이 binary라서, ‘rb’를 써야함)

※ I/O가 데이터 처리를 할 때 가장 느린 파트이기 때문에 신경써줘야 한다. (performance bottleneck)

Key Points

  1. 파이썬에서 키보드로 데이터를 입력하려면 input 함수를 사용해야 합니다.
  2. 파일로 된 데이터를 읽어오려면 file I/O처리가 필요합니다. 어떤 타입의 데이터를 읽어오느냐에 따라 필요한 라이브러리가 달라집니다.
  3. file의 사이즈가 크면, file I/O가 데이터 처리에 치명적인 성능 저하를 가져올 수 있습니다.
profile
데이터 사이언티스트를 꿈꾸는 3년차 제품총괄입니다.

0개의 댓글