파이썬 팁

python] 파이썬 문자열 안에서 숫자만 분리하는 방법 정리, + 예외처리방법 ! - re.findall , str.split, try: except ValuError:

gomming 2020. 9. 22. 23:46

 

 

 

파이썬 코딩 중 특히 텍스트 파일을 불러와서 데이터 베이스 구축할 때가 자주 있는 데요

문자열로 불러온 데이터에서 숫자만 분리하여 배열을 생성하는 등 처리를 하고 싶은 경우 이 글을 참조하시면

아주아주 도움이 많이 되실거 같아요

 

코린이 여러분들 화이팅 ! .!

 

우선 re 라이브러리를 이용하는 방법 입니다.

 

import re 하여 라이브러리를 불러요고요

 

분리할 문자열을 여러 케이스로 생성해 봅니다.

 

str='N11/N12'는 문자와 숫자가 서로 붙어 있고 두 자리 이상인 경우에요

str1='N1N2N3N4'는 한자리 숫자가 문자열과 함께 작성 되어 있어요

nodstr='Node 1000001'은 문자열 내에 문자와 숫자가 들어가 있어요

 

re.findall('|d+', str)은 서로 붙어 있는 숫자를 붙여서 분리해 줍니다. 두자리 이상의 수가 있을 때

이용하시면 좋겠죠 ?

re.findall('|d', str)은 숫자 하나하나 따로 분리해 줍니다.

 

위 이미지를 보시면 두 자리 숫자는 '|d'를 써서, 한자리 수는 '|d+'를 써서 잘 분리된 걸 볼 수 있어요

 

다음으로 split을 이용한 방법이 있어요 re.findall을 쓰면 소수는 분리하기 어려운데요

이럴 때 str.split() 기능을 써보세요

 

()안에 seperator를 입력하시면 적용 됩니다. ()안을 비워두면 공백을 제거하고 ' ' space를 seperator로 인식하여 분리 됩니다. (',')이렇게 쓰시면 콤마 기준으로 분리 됩니다.

 

위에 nodstr은 공백으로 떨어져 있기 때문에 split() 으로 잘 분리 되었습니다.

 

split을 for문에 적용하여 리스트안에 긴 문자열이 있는 경우 적용해 보실 수 있습니다.

아래 이미지를 보시죠

 

for 문을 리스트 자료형으로 실행하여 리스트에서 문자열을 순차적으로 word로 적용할 수 있어요

nodstr.split()하면 'Node' 와 '1000001' 두 개 문자열로 분리되는데요

a라는 빈 리스트에 문자열을 정수로 변환하여 첨부하도록 합니다.<list.append(첨부대상)>

 

'Node'는 정수로 변환할 수 없어 ValueError가 발생하므로 try except 기능으로 예외처리할 수 있어요

try: 아래 내용을 진행하면서 에러라 발생 되면 except errortype: ;pass 위 이미지 처럼 입력하여

예외 처리할 수 있습니다.

이 기능을 쓰면 에러를 내지 않고 다음 대상으로 넘어가게 됩니다.

! .! 참 많이 사용되는 기능이죠

 

 

부디 도움 되셨기를 바랍니다.

코린이 여러분 저도 코린이지만 코딩하면서 막히는 부분이 있면 댓글이나 쪽지 남겨 주세요 ~ .~

예제로 만들어서 설명해 드립니다 ! .!

 

코딩은 매일 새롭고 재미있는거 같아요

 

#파이썬#배열중복#배열중복제거#리스트중복제거#set#duplicates#drop_duplicates

#pandas#numpy#jupyter_lab#python37#리스트배열변환#배열데이터프레임변환#shape

#파이썬코딩#파이썬강좌#파이썬기능#넘파이#파이썬버전확인#pythonversion#version

#리스트에추가#append#for문# 일정하게증가#range#리스트분할 #리스트슬라이싱 #readline #readlines #텍스트파일읽기 #파이썬텍스트 #문자열에서숫자분리하기 #re #re.findall #split #문자열분리 #예외처리 #try #except