[Python] chap3. 텍스트 파일 가공하기

Jim·2022년 11월 28일
0

Python

목록 보기
3/4

파일 입출력

  1. 확장자
    txt, csv, json,xlsx 등.

  2. os 모듈

    • py파일 위치 확인, 특정 폴더 이동, 파일들을 리스트 형태로 저장 등의 기능을 할 수 있는 모듈
import os

현재 위치 확인하기

os.getcwd()

폴더 이동하기

os.chdir
--> os.chidr('C\Users\user\python')

정규 표현식

메타 문자

정규표현식예시설명
.a.b사이에 어떤 문자가 포함됨.
[.]a[.]ba와 b 사이에 . 포함됨
*b*b가 0~무한대 반복됨
+b+b가 최소 1회 이상 반복됨
?b?b가 0 or 1회 반복됨
{m}a{3}a가 3번 반복됨
{m,n}a{2,7}a가 2~7번 반복됨
{,n}a{,8}a가 8번 이하 반복됨
{2,}a{2,}a가 2번 이상 반복됨
^^ab문자열 첫 문자가 a와 일치
$ab$문자열 마지막 문자가 b와 일치

세 가지 형식의 핸드폰 전화번호

01\d[ -]{0,1}\d\d\d\d[ -]{0,1}\d\d\d\d

세 글자가 010,011,012중 하나로 되어있고, 대문자 알파벳으로 이루어진 2~4개의 문자들이 뒤를 따라오는 문자열

01[12][A-Z]{2,4}

세 글자가 010,011,012중 하나로 되어있고, 대문자 알파벳으로 이루어진 2~4개의 문자들이 뒤를 따라오는 문자열

내 답안
[ab]+[A-Za-z0-9]+[A-Za-z0-9]+[A-Za-z0-9]*[bB]?

교수님 답안
[ab]+[A-Za-z0-9]{3,}[bB]?
*{3,} : 3회 이하.
*[bB]? : 1개 혹은 0개

(이동민, 2019) (Lion, 2018) 이런거 찾기

교수님 답안
\([가-힣A-Za-z]{3,4}, \d{4}\)
[가-힣A-Za-z] : 한/영 소대문자 다 포함.
{3,4} : 3~4회 반복

교재 답안
\([가-힣A-Za-z]{3,4}, \d+\)
+ : 1회 이상
\d+ : 숫자 1회 이상 연속.

정규표현식 탐욕제어

탐욕

'\d.+년'

탐욕제어
해결법 : ? 넣어줌

'\d.+?년'
**** + : 최소 1회 이상 반복
? : 바로 앞 1문자가 0~1회 반복
a.b : a와 b사이에 어떤 문자가 포함됨.

매칭 되면 끊어준다.

split 메서드

: 문장을 나누기 위해 사용

re.split(패턴,문자열)
import re
text = "a:3; b:4; c:5"

for i in re.split(r";", text):
    print(re.split(r":",i))

sub 메서드

: 문자열 바꾸기

re.sub(찾을 패턴, 대체할 문자, 찾을 문자열)

dog 를 cat으로 수정

re.sub(r'dog','cat',sentence)

sub를 공백 삭제로 사용

words = '~~~~~~~'
re.sub(r'\n','',words)
profile
Hello Jim!

0개의 댓글