card.csv 파일에는 많은 데이터가 들어 있는데 겨우 한 줄만 출력됩니다. 이는 open()만으로는 파일의 데이터를 읽지 못한다는 뜻입니다. 화면에 나온 실행결과는 card.csv 파일의 정보만 보여 준 것이죠.
여기서 주목할 부분은 마지막의 encoding입니다. 사용하는 운영체제가 Windows라면 encoding을 utf8로, macOS라면 cp949로 설정해야 합니다(같은 파일이더라도 주피터 노트북과 코랩에서 인코딩 방식이 다르게 나타날 수 있습니다). 이럴 때는 다음처럼 open() 명령어에 encoding 옵션을 추가합니다.
# 운영체제가 Windows인 경우 encoding = 'utf8', macOS인 경우 encoding = 'cp949'
f = open('card.csv', encoding='utf8')
print(f)
실행결과
<_io.TextIOWrapper name='card.csv' mode='r' encoding='utf8'>
옵션을 추가하니 출력 결과도 encoding='utf8'로 바뀝니다. 이 부분이 PC의 운영체제와 맞게 설정돼야 다음 단계에서 오류가 발생하지 않습니다.
두 번째 단계인 파일 읽기는 명령어 csv.reader()에 CSV 파일의 내용을 저장한 변수 f를 넣습니다. 그리고 이를 다시 변수 data에 저장합니다. 여기까지 진행한 후 data에 저장된 값을 출력해 봅시다.
f = open('card.csv', encoding='utf8')
data = csv.reader(f)
print(data)
실행결과
<_csv.reader object at 0x00000221F0F93E48>