I/O : Input/Output의 약자로 컴퓨터가 데이터를 입력받고 출력하는 모든 작업을 의미합니다.
- 프로그램 입장에서 들어오는 모든 데이터를 Input, 나가는 모든 데이터를 Output이라고 합니다.
- 메인 메모리 입장에서 생각하는 들어오고 나가는 모든 데이터에 대해서 I/O 처리라고 부릅니다. (단, CPU와의 소통은 제외)
- 사용자로부터 키보드로 입력받는 것을 stdin 이라고 하며, 사용자에게 다시 결과를 모니터로 보여주는 것을 stdout 이라고 합니다.
# stdin/stdout example
a = input("숫자를 하나 입력하세요 : ") # input 함수는 뭐든 str로 받아옵니다.
print(a)
>>> 숫자를 하나 입력하세요 : 5
>>> '5'
- 프로그램은 메인 메모리 상에서 존재하기 때문에, 스토리지로부터 파일을 불러오는 것도 input이고, 프로그램의 결과를 스토리지에 저장하는 것도 output입니다.
- 스토리지와 프로그램 사이의 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 순)
- 다른 타입의 파일을 열기 위해선 다른 라이브러리들이 필요합니다.
e.g. csv, excel 파일을 열기 위해 pandas, csv, openpyxl 라이브러리를 사용할 수 있다.
e.g. png, jpg 파일을 열기 위해 PIL, opencv 라이브러리를 사용할 수 있다.
e.g. pk, pkl 파일을 열기 위해 pickle 라이브러리를 사용할 수 있다. (파일 타입이 binary 라서, ‘rb’를 써야함) - I/O가 데이터 처리를 할 때 가장 느린 파트이기 때문에 신경써줘야 합니다. (performance bottleneck)
Key Points
- 파이썬에서 키보드로 데이터를 입력하려면 input 함수를 사용해야 합니다.
- 파일로 된 데이터를 읽어오려면 file I/O처리가 필요합니다. 어떤 타입의 데이터를 읽어오느냐에 따라 필요한 라이브러리가 달라집니다.
- file의 사이즈가 크면, file I/O가 데이터 처리에 치명적인 성능 저하를 가져올 수 있습니다
'Python > Python Programming' 카테고리의 다른 글
Part03 Chapter.01 파이썬 프로그래밍-13. OOP(이론) (0) | 2022.07.11 |
---|---|
Part03 Chapter.01 파이썬 프로그래밍-12. I/O (실습) (0) | 2022.07.11 |
Part03 Chapter.01 파이썬 프로그래밍-10. 함수 (실습) (0) | 2022.07.11 |
Part03 Chapter.01 파이썬 프로그래밍-09. 함수(이론) (0) | 2022.07.11 |
Part03 Chapter.01 파이썬 프로그래밍-08. for, while (실습) (0) | 2022.07.11 |