더북(TheBook)

다음으로 엑셀 파일의 셀들을 모두 읽어 들이겠습니다.

>>> g = ws.rows        #1

>>> cells = next(g)    #2

>>> cells

(<Cell 'Sheet1'.A1>, <Cell 'Sheet1'.B1>, <Cell 'Sheet1'.C1>, <Cell 'Sheet1'.D1>)


rows는 데이터가 있는 모든 행을 발생자 객체로 반환합니다(#1). 그리고 next() 함수로 첫 번째 행을 가져와(#2) 출력하면 엑셀 파일의 셀들이 들어 있는 것을 확인할 수 있습니다.


TIP 발생자(generator)는 반복자(iterator)의 일종으로 next( ) 함수를 호출할 때마다 데이터를 차례대로 반환합니다. 모든 데이터가 반환되면 StopIteration 오류가 발생합니다.


그림 6-2를 보면 1행에 학생 이름과 과목명이 들어 있습니다. 1행을 학생 데이터를 담을 딕셔너리의 키(key)로 사용하겠습니다. 다음과 같이 keys라는 리스트에 담아 둡니다.

>>> keys = [ ]

>>> for cell in cells:

              keys.append(cell.value)           #1

>>> keys

['name', 'math', 'literature', 'science']


셀의 value에 접근해서 실제 값을 가져옵니다(#1).

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.