일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- tablueau
- 상관계수
- 맞춤 자바스크립트
- oracle
- git
- Ecommerce
- 데이터 분석
- Ga
- API
- bigquery
- sql 개발자
- 용어 정리
- 통계
- 후기
- 이벤트 매개변수
- Funnel
- 맞춤 이벤트
- Python
- 캐글
- 크로스셀링
- tableau
- It
- Kaggle
- Google Analytics
- segmentation
- 그로스해킹
- pandas
- SQL
- DISTINCT
- SQLD
- Today
- Total
녕녀기의 실험일지
[ Python ] iter와 next를 활용한 텍스트 추출 본문
본문으로
안녕하세요. 녀기입니다.
평소와 다름 없이 테스트 업무를 보던 어느 날....
헤더 파일에 매크로만 900개 이상이었고,
이를 정리해야 하는 일이 있었지요😱
자동화를 해야겠다는 생각이 있었지만,
코드는 계속 에러가 나고 고칠 시간은 없었기에,
결국 900개를 수동으로 입력했다는 슬픈 전설이 있습니다...
( 이 동상에는 슬픈 전설이 있어(?) )
하지만 그 이후에 작성을 했다는 사실!!!
을 기록하기 위해 들어왔습죠.
(왔습죠가 뭐냐 왔습죠가)
iter와 next 한 번 알아보시죠.
iter와 next
(아래는 참고한 블로그 입니다.)
https://www.flowdas.com/blog/iterators-in-python/index.html
파이썬 이터레이터 — flowdas
파이썬 이터레이터 대부분의 파이썬 튜토리얼들과는 달리 파이썬 3.3을 중심으로 기술하고 파이썬 2를 포함한 하위 버전에서 차이를 보이면 따로 설명합니다. 파이썬의 시퀀스는 for 루프로 탐색
www.flowdas.com
https://dojang.io/mod/page/view.php?id=2408
파이썬 코딩 도장: 39.4 iter, next 함수 활용하기
이번에는 파이썬 내장 함수 iter, next에 대해 알아보겠습니다. iter는 객체의 __iter__ 메서드를 호출해주고, next는 객체의 __next__ 메서드를 호출해줍니다. 그럼 range(3)에 iter와 next를 사용해보겠습니
dojang.io
(위에 'play ▶' 버튼을 눌러보세요.)
iter는 반복 가능한 객체에서 __iter__ 메서드를 호출해 이터레이터를 반환하고, next는 객체의 __next__ 메서드를 호출해 이터레이터에서 값을 차례대로 꺼냅니다.
iter를 통해 변환된 리스트에서, next를 사용해 값을 하나 하나 순서대로 출력하는 것을 볼 수가 있습니다.
이는 for문으로 해도 대충 구현이 됩니다만,
iter와 next는 아래와 같이 사용될 수 있기 때문에 쓸만합니다.
차이가 보이시나요 여러분?
리스트를 for문으로 돌리면,
어떤 조건을 붙이지 않는 이상 차례대로 하나씩 꺼내오는 것이 정석입니다.
그러나 for문 아래에 next(testIter)로 인해서, 이터레이터 내부의 순서가 하나씩 이동한 것이죠.
즉
이터레이터에서 0번째 요소로 for문 실행 → 0번째 요소 출력 → next()로 1번째 요소 출력 → 1번째 요소가 아닌 2번째 요소로 for문 실행 → 2번째 요소 출력 → next()로 3번째 요소 출력.....
의 과정을 거친 것입니다.
(맞게 설명됐는지 모르겠습니다만 정황상 저런 흐름으로 흘러간 것 같습니다.
만약 잘못된 내용이 있다면 댓글 달아주세요.)
그렇다면 iter와 next의 특성을 이용해
특정 문장이 '\n' 이스케이프 문자로 끝나면, 다음 문장까지 저장하고
그 다다음 문장부터 시작할 수 있습니다.
아래 코드처럼.
# '\n'로 끝나는 문장이면 다음 라인도 추가합니다.
if line.endswith('\n'):
try :
# next로 iterator의 다음 요소를 불러옵니다.
next_line = next(lines_iter)
print(cnt)
print("--------------")
statement += next_line
cnt+=1
except StopIteration:
break
line이 '\n'으로 끝나면, next()를 통해 다음 문장까지 추가하고 있습니다.
이러면 두 줄에 나눠서 작성돼 있는 매크로를 저장할 수 있습니다.
아직 자동화 코드가 완성된 것은 아니지만, 저것만으로도 80%로는 완성했다고 할 수 있습니다.
(아이 신나~~)
그럼 저는 마저 완성해 보도록 할게요~~!!!!!
뿅

'-- Data -- > - Python -' 카테고리의 다른 글
[ Matplotlib ] 특정 값만 색상 다르게 지정하기 (0) | 2023.09.25 |
---|---|
[ Pandas ] .str.extract와 정규 표현식을 사용해서 조건에 맞는 텍스트 추출하기 (0) | 2023.09.03 |
[ Python ] sympy 라이브러리를 이용한 방정식 해 구하기 (0) | 2023.07.28 |
[ Pandas ] sort_values()를 이용한 Dataframe 정렬 (0) | 2023.06.22 |
[ Pandas ] melt() method 를 사용해 DataFrame Unpivot 화 (0) | 2023.05.25 |