✅ 핵심 내용
컴퓨터는 모든 종류의 데이터를 0과 1의 이진 데이터(binary data) 로 표현한다. 이러한 이진 데이터의 최소 단위가 비트(bit) 이고, 비트 8개가 모여 바이트(byte) 가 되어 메모리에는 바이트로 저장이 된다.
따라서, 문자열도 해당되는 숫자가 존재하고 바이트로 변환이 되어 컴퓨터에 전달된다. 이때, 문자열과 바이트로 변환하는 과정을 인코딩, 디코딩이라고 한다.
출처: https://sourcedexter.com/data-encodingdecoding-in-python/바이트 (byte) : 컴퓨터의 기본 저장단위
인코딩 (encoding) : 문자열을 바이트로 변환하는 과정 (파이썬 내장함수ord()
)
디코딩 (decoding) : 바이트를 문자열로 변환하는 과정 (파이썬 내장함수chr()
)
이스케이프 문자는 \[특정문자]
형태로, 컴퓨터가 특정 기능을 하도록 하는 문자를 문자열에 포함시킬 수 있게하는 특수 문자이다.
이스케이프 문자 | 출력 |
---|---|
\' | ' |
\" | " |
\t | 탭 |
\n | 줄바꿈 |
\ | | |
이스케이프 문자를 무시하고 싶을 때는 원시 문자열 (raw string) r
을 문자열이 시작하는 따옴표 앞에 붙이면 된다.
print('i don\'t know') # i don't know
print(r'i don\'t know') # i don\'t know
정규 표현식은 특정한 문자열의 패턴을 정의하고 같은 패턴의 문자열들을 찾을 때 사용한다. 정의된 특정 패턴과 일치하는 문자열을 찾아 다양한 처리를 할 수 있다.
파이썬에서는 표준 라이브러리 re
모듈을 불러와 정규 표현식을 사용할 수 있다.
import re
이때 찾고자 하는 특정 패턴을 정의하는 과정을 컴파일(complie) 이라고 한다. complie
함수를 통해 특정 패턴을 컴파일한 후 패턴 객체를 리턴할 수 있다.
다음의 특수문자(메타문자) 를 통해 다양한 패턴을 만들 수 있다.
[]
: 문자-
: 범위.
: 문자 1개?
: 0회 또는 1회 반복*
: 0회 이상 반복+
: 1회 이상 반복{m}
: 특정 개수의 문자, 숫자{m,n}
: 특정 개수 범위의 문자, 숫자^
: []
앞에 붙이면 특정 문자 범위로 시작하는지 판단, []
안에 넣으면 특정 문자 범위를 제외$
: 특정 문자 범위로 끝나는지 판단\
: 정규 표현식에서 사용하는 문자를 그대로 표현 할때 앞에 붙임\d
: 숫자, [0-9]
와 같음\D
: 숫자를 제외한 모든 문자, [^0-9]
와 같음\w
: 영문 대소문자, 숫자, 밑줄 문자, [a-zA-Z0-9_]
와 같음\W
: 영문 대소문자, 숫자, 밑줄 문자를 제외한 모든 문자, [^a-zA-Z0-9_]
와 같음.\s
: 공백 문자\S
: 비공백 문자\b
: 단어 경계\B
: 비단어 경계특정 패턴을 만들어 패턴 객체를 컴파일 했으면 패턴 객체를 활용하여 여러 메소드를 사용할 수 있다. 다음은 많이 사용되는 메소드들이다.
search()
: 일치하는 패턴 찾아서 매치 객체로 반환match()
: 패턴이 처음부터 일치하는 대상을 찾아서 매치 객체로 반환findall()
: 일치하는 모든 패턴 찾아서 리스트에 담아서 반환split()
: 패턴으로 나눔sub()
: 일치하는 패턴으로 대체group(그룹)
: 그룹에 매칭된 문자열 반환파이썬을 통해 컴퓨터 내 저장된 파일을 읽거나, 수정하거나, 데이터를 파일로 저장 가능하다. 그러기위해서는 open()
함수를 통해 파일을 열고 객체로 만들어야한다. 파일을 열어 여러 작업을 한 후에는 close()
를 통해 파일을 닫아야한다.(필수!)
파일객체 = open(파일이름, 파일모드) # 파일 열기
파일객체.close() # 파일 객체 닫기
파일을 열때 사용하는 여러 파일모드와 파일을 열고 사용할 수 있는 여러 파일 메소드 들에 대해 Python Master 풀잎을 통해 학습하였다.
자세한 내용은 AIFFEL Python Master 핵심정리 #03 파일 입출력, 함수 에서 !
또한 with
문을 사용하여 파일을 호출하면 자동으로 close
되기 때문에 시스템 리소스의 안정적 사용을 위해 with
문을 사용하는 것을 권장한다.
디렉토리 는 파일이 저장되어 있는 위치이다. 파일을 불러올때 정확한 디렉토리를 알려주어야만 파일이 문제없이 열린다. 또한 경로의 최상위 폴더를 루트 디렉토리 (root directory) 라고 부른다.
파이썬에서 지원하는 디렉토리 관련 라이브러리는 sys
, os
, glob
가 있다. 이 모듈들을 import
하여 디렉토리에 관련된 여러 작업을 할 수 있다.
CSV 는 Comma Seperated Value 의 약자로, . 각각의 column 을 쉼표로 구분한 파일 형식이다. csv 파일은 pandas 의 DataFrame 와 서로 변환 가능하다. 따라서 데이터 분석을 할때 csv 파일을 DataFrame 으로 변환시켜 편리하게 데이터를 다룰 수 있다.
read_csv()
: csv 파일을 DataFrame 으로 변경to.csv()
: DataFrame 을 csv 파일로 변경XML 은 Extensible Markup Language 의 약자로, 다목적 마크업 언어이다. 마크업 언어는 태그<>로 이루어졌으며, 인터넷 웹상에서 문서를 교환할 때 이용한다. BeautifulSoup
를 이용해 여러 방법으로 파싱이 가능하다.
JSON 은 JavaScript Object Notation 의 약자로, JavaScript의 데이터 객체 표현 방식이다.
XML 과 JSON 은 웹 API 나 config 데이터를 전송할 때 많이 쓰인다.