텍스트 데이터를 변수에 저장하면
컴퓨터의 주기억 장치인 RAM에 저장된다.
컴퓨터는 0과 1구성된 bit(비트) 2진 데이터에 저장되고
1byte(바이트)는 8비트에 해당하므로, 2^8=256개의 값을
하나의 바이트에 저장 가능하다.
텍스트는 인코딩(encoding) 과정을 통해 바이트로
다시 바이트는 디코딩(decoding) 과정을 통해 문자열로
다시 변환된다.
전 세계 문자를 모두 표시할 수 있는 표준 코드를
유니코드(Unicode)라고 한다.
ord() #문자에 대응하는 유니코드 숫자를 반환 chr() #유니코드 숫자에 대응하는 문자를 반환
파이썬3에서는 모든 문자열은 유니코드로 표현된다.
\(역슬래시)는 이스케이프 문자로
직접 입력이 안되는 특수문자를 포함시킬 때 사용한다.
\특수문자를 사용하거나, \t를 통해 강제 탭키공백 사용
\n을 통해 줄바꿈을 사용할 수 있다.
이스케이프에 이스케이프 : 이스케이프 문자까지 포함하고 싶을땐
문자열 ''앞에 r을 붙일 수 있다.
.startswith() #()로 시작하는 문자열을 찾아옴 .endswith() #()로 끝나는 문자열을 찾아옴(확장자) .strip() #공백 제거, r혹은 l을 붙여 오른쪽 왼쪽만 지정가능 .upper() # 모든 문자열을 대문자로 .lower() # 모든 문자열을 소문자로 .capitalize() # 첫 글자를 대문자로 .join() # 여러 문자열을 하나의 문자열로 합침 .split() # 하나의 문자열을 문자열의 리스트로 나눔 .replace(a,b) # a문자열을 찾아, b로 바꿔버림
문자열을 확인해서 True, False를 반환
.isupper() #모두 대문자인 경우 True를 반환 .islower() #모두 소문자인 경우 True를 반환 .istitle() #문자열 첫글자가 대문자인 경우 True를 반환 .isalpha() #알파벳으로만 되어있는 경우 True를 반환 .isalnum() #알파벳과 숫자로만 되어있는 경우 True를 반환 .isdecimal() #숫자로만 되어있는 경우 True를 반환
가변 객체(mutable object) : list, set, dict
불변 객체(immutalble object) : int, bool, str, tuple 등
가변 객체는 변화가 가능한 값이라
x = [1,2,3] 의 리스트를 y = x로 복사하는 경우
x.append(4)를 하는경우 y도 같이 변하는 상황이 나온다.
이는 하나의 같은 메모리를 쓴다고 보면되며
id()를 통해 고유 메모리 주소를 확인해 볼 수 있다.
정규표현식은 문자열에서 특정규칙을 찾아서
문자열 패턴을 정의하고 기존 문자열과 비교하여
문자열을 검색하거나, 치환하는데 사용된다.
소스문자열 -> 패턴 문자열 찾기
import re # 표준 라이브러리의 re모듈을 불러와야함 pattern = re.compile("특정문자") #특정 문자의 패턴을 찾아서 리턴 pattern.findall('~~') #~~에서 특정문자를 찾아서 리턴
여기에서 사용되는 메서드는
search() # 일치하는 패턴을 찾으면 Mainobjet 반환 match() # 처음부터 패턴이 검색 대상과 일치해야함 findall() # 일치하는 모든 패턴 찾기 split() # 원본을 패턴으로 나눠서 리턴 sub() # 일치하는 패턴으로 대체 group() # 실제 결과와 일치하는 문자열을 반환
특정 문자열을 직접적어서 찾는 경우도 있지만
대부분은 특수문자 혹은 메타문자라 불리는 기호들을 이용해
조금더 광범위한 패턴을 찾을 수 있다.
필요할때 보면서 검색하면 될듯하다 ㅎㅎ
파이썬에서 변수 등에 저장되는 데이터는 일단 메모리에
저장된다. 그러나 전원이 꺼지면 데이터가 같이 날아가므로,
보조기억장치에 파일과 같은 형태로 저장한다.
어차피 건드는 파일은 대부분 txt파일일테니...
파일을 열기위해서는 일단
with open(#파일명, 파일모드) #with를 통해 open된 문서는 작업종료시 자동 close됨 .write(str) #str을 문서에 적음 .read() #문서를 읽음 .readline() #문서를 한 줄씩 읽음 .readlines() #파일안의 모든줄을 읽어서 리스트를 반환
등의 방식으로 파일을 저장할 수 있다.
리눅스에서는 /(루트)를 기본으로 디렉토리가 파생된다.
home/ : 계정파일이 들어가는 디렉토리
bin/ : 실행파일을 모아두는 디렉토리
media/ : cd롬등의 디렉토리
etc/ : 부트관련 디렉토리
sbin/ : admin계정이 쓰는 실행파일 디렉토리
tmp/ : 말그대로 임시
sys/ : 시스템 디렉토리
모듈 : 파이썬으로 만든 코드가 들어간 파일 (.py 확장자)
패키지 : 모듈들의 집합. 라이브러리라고도 부름
PIP : 패키지 기본 관리자.
PyPA : 패키지 관리하고 유지하는 사람들
PyPI : 패키지 저장소
음... 대충보니까 이제 파이썬은 패키지와의 싸움이다.
내가 코딩을 잘 못해도, 패키지만 잘 가져다가 쓰면
별 문제 없이 잘할수 있는 시스템이야.
이 파트... 은근 중요할지도?
sys.path() : 현재폴더 및 모듈이 저장되는 위치를 리스트로 반환
sys.path.append() : 새로만든 모듈의 경로를 추가
os.chdir() : 디렉터리 위치 변경
os.getcwd() : 현재 디렉터리 위치 반환
os.mkdir() : 디렉터리 생성
os.rmdir() : 디렉터리(가 비어있을 경우) 삭제
glob.glob() : 해당 경로의 디렉터리와 파일을 리스트로 반환
os.path.join() : 경로를 병합하여 새경로 생성(?)
os.listdir() : 디렉토리 아래의 파일,디렉토리를 리스트로 반환
os.path.exists() : 파일이나 디렉터리 경로 존재여부 확인
os.path.isfile() : 파일 경로의 존재여부 확인
os.path.isdir() : 디렉토리 존재여부 확인
of.path.getsize() : 파일의 크기 확인
csv 파일 : 지겹게 쓰게될 pandas모듈에서 쓸수있는 파일
pandas의 DataFrame을 통해 데이터를 분석함.
csv는 엑셀로도 열리니 여차하면 엑셀로 수정해도 될 듯하다.
자세한 사용법은 통계 스터디 공부에서!
굳이...? 파이썬으로 csv파일을 만들일이 있을까?
XML 파일 : Extensible Markup Language
<>을 사용한 마크업 언어로 대충 HTML과 유사하다.
라떼는 말이야... 홈페이지 만드는 툴이 없어서
HTML은 기본소양이었다구.
JSON 파일 : JavaScript Object Notation의 약자로
자바스크립트의 데이터 객체 표현방식이다.
파이썬의 dictionary타입과 유사한 구조를 가지며,
encoding="utf-8" 명령어를 통해 dict 객체로 읽어올 수 있다.