[Education]/[Python] 파이썬을 이용한 자동화 스크립트 22

[Python] 22. 파이썬 메일 보내기/받기 - IMAP, imaplib, SMTP, smtplib, search, send_message

1. IMAP : 이메일 받기와 지우기 1) imaplib와 email 두 개의 모듈을 사용 - IMAP 서버에 로그인하고, 이메일을 검색하고, 가져와서 메시지를 읽는다.       2) 이메일 지우기 >>> imap.uid('store','65334','+FLAGS','(\\Deleted)')('OK', [b'2 (FLAGS (\\Seen \\Deleted) UID 5334)'])>>> imap.expunge()('OK', [b'2'])  2. IMAP : search() 함수 1) HEADER 로 찾기 - imap.uid('search', None,'(HEADER Subject ”instruction")')- imap.uid('search', None,'(HEADER From”soongon@gmail..

[Python] 21. 파이썬 날짜 다루기, 스케쥴링, 프로세스 - time모듈, datetime 모듈, timedelta, strftime, subprocess 모듈

1. time 모듈 - 날짜와 시간을 표현하는 형식은 너무도 다양함 - time 모듈 : 절대시간(epoch 타임)을 다루는 모듈 - datetime 모듈 : 시간을 보기 좋게 표현하는 방식에 대한 모듈 1) time.time() 함수- 1970.01.01. 00:00:00 → 에포크 타임스탬프 - 에포크로부터의 경과시간을 숫자(float 타입)로 표시 - round(time.time())으로 소수점을 없애서 사용 가능  - now = time.time() - time.ctime(now) - time.localtime(now) - time.gmtime(now)  2) 시간끼리 비교 가능- time.time()의 숫자로 비교 ( 즉 미래가 과거보다 크다 ) 3) 데모- 실행시간 계산 예제  4) time...

[Python] 20. 파이썬 Web Scraping - 웹 스크레이퍼, requests모듈, BeautifulSoup4 모듈, lxml 모듈, Tag 객체, CSS셀렉터

1. 스크래이퍼(Scraper)란?1) 웹 스크레이퍼- 도메인 이름을 받고 HTML 데이터를 가져옴 - 데이터를 파싱해 원하는 정보를 얻음 - 원하는 정보를 저장함 - 필요하다면 다른 페이지에서도 이 작업을 반복함 2) 필요한 모듈들- requests- BeautifulSoup4- lxml  2. 웹 스크래이퍼 작성1) 웹 사이트에 연결 및 요청 : HTML 결과를 얻어옴- requests 모듈 사용 ( pip install requests ) > http://docs.python-requests.org/en/master/  2) 원하는 컨텐츠를 뽑아낸다.- res.headers - res.encoding - res.text - res.json()  3) 컨텐츠를 저장한다.  3. BeautifulSou..

[Python] 19. 파이썬 오픈 API와 JSON - requests 모듈, urllib 모듈

1. 오픈 API 1) API (Application Programming Interface) - 여러 애플리케이션 사이에서 간편한 인터페이스  2) 오픈 API – 주로 웹 API 또는 API라고 함 - HTTP를 통해 데이터를 요청하며 주로 XML이나 JSON 형식으로 응답 - 최근에는 JSON 방식의 응답을 하는 API가 빠르게 늘어나고 있음 - 유용한 형식으로 정리된 데이터를 제공 받을 수 있음 3) API 동작 방식 - 브라우저에서 API 요청 > http://api.github.com/users/soongon > 응답은 JSON 형태로 반환   2. JSON 포맷 1) 데이터 교환의 표준 포맷 - JSON  3. JSON 요청 및 처리1) requests 모듈 - HTTP 요청 클라이언트 모..

[Python] 18. 파이썬 CSV 파일 다루기 - XML, HTML, JSON, YAML, 엑셀파일과의 차이점

1. 구조화된 텍스트 파일 1) 프로그램에서 데이터를 저장할 때나, 다른 프로그램으로 보낼 때 사용- 탭(‘\t’), 콤마(‘,’), 수직 바(‘ | ‘)와 같은 문자를 구분자(separate, delimeter)로 사용 - 태그를 ‘ ‘ 로 둘러싼다. – XML 과 HTML 이 있다. - 구두점을 사용한다. – JSON - 들여쓰기를 사용한다. – YAML (YAML Ain’t ML)- 기타 프로그램 설정 파일 같은 형식이 있다.  2. CSV 파일1) 구분된 (delimited file)은 스프레드 시트나 데이터베이스의 데이터 교환 형식- CSV (Comma Separated Value) - 콤마로 구분된 데이터를 라인단위로 읽어 리스트나 딕셔너리 같은 자료구조에 넣는다. - 파일의 운영체제에 따른..

[Python] 17. 파이썬 엑셀파일 다루기 - openpyxl 모듈, cell함수, formulas, merge_cell

1. 엑셀 문서 구조 1) 엑셀 문서, Excel Documents 2. 엑셀 지원 모듈 1) 엑셀 지원 파이썬 모듈 - xlwt - OpenPyXL http://openpyxl.readthedocs.org/- XlsxWriter - PyExcelerate 2) openpyxl 모듈 - 로컬에 엑셀 프로그램이 설치되어 있지 않아도 엑셀파일 생성과 읽기가 가능 - 대용량 지원, 이미지 지원 등 - pip install openpyxl> openpyxl과 관련 모듈이 설치  3. 엑셀 파일 읽기 1) 엑셀 문서(워크북) 열기 2) 워크시트 접근- 워크시트 목록 리스트로 반환- 액티브 워크시트 반환 3) 셀에 접근 4) cell() 함수 : 키워드 파라미터 사용 - 마지막 셀 (로우) : sheet.max_r..

[Python] 16. 파이썬 객체와 클래스 - 클래스 문법, init 메소드, 클래스 상속, Override

1. 클래스1) 객체지향 프로그래밍 - Object Oriented Programming - Programming paradigm - 데이터를 포함한 데이터구조 (field, attribute)와 함수(function, procedure, 메서드라고 부름)로 구성 - 객체 내부에 포함된 데이터를 메서드를 통해 수정 가능 (this 또는 self 키워드 사용) - 프로그램은 모두 객체로 분해되어 설계되고, 객체 간 서로 상호작용을 통해 수행됨  2) 클래스 선언 3) 클래스 문법 - class 키워드로 시작됨 - class 키워드 다음에 클래스 이름이 위치 - 클래스 이름 뒤에 괄호 속에 상속된 클래스 이름이 위치 - 파이썬의 object 클래스의 기능과 속성을 모두 상속받는다.- 사용자가 작성한 클래스(..

[Python] 15. 파이썬 예외처리와 로깅 - 예외종류, raise, logging 모듈, 팩토리얼 코드 로깅

1. 예외 처리1) 프로그램의 비정상적인 종료를 막는 방법- 에러가 발생할 가능성이 있는 코드를 사전에 처리해 주는 방법 (예) 파일을 다룰 때 파일이 없거나 쓰기금지로 설정된 경우 > 데이터베이스 연결 시 DB쪽 이슈 > 네트워크 관련 코드에서 네트워크 이슈 2) try, except를 이용한 에러로부터의 복구 2. 예외 종류1) 파이썬은 60여 개의 이상의 예외가 있음  3. 예외 1) 사용자 정의 예외 만들기- 새로운 예외 타입을 만들기 위해서는 class 객체 타입을 정의해야 함 2) 예외 발생 : raise- 특정한 상황에서 예외를 발생시킬 수 있음  > raise BizException   4. logging 모듈 1) 로그 메시지를 디스플레이 하고자 할 때 사용 > 코드 제일 위쪽에 로깅..

[Python] 14. 파이썬 파일과 디렉터리 다루기 - pickle 모듈, shitl 모듈, send2trash 모듈, zipfile 모듈

1. 파일 - pickle 모듈 1) pickle 모듈 사용- 리스트나 클래스를 파일에 저장할 때 사용  2. 파일과 디렉터리 관리1) 파일과 디렉터리 관리에 대해서 다룸- 하드디스크에 저장된 파일과 디렉터리의 관리 작업을 자동화 - 특정 확장자를 가진 파일 또는 특정 이름 패턴을 가진 파일을 지우거나 다른 디렉터리로 옮기기 - 파일이나 디렉터리를 압축하여 별도 저장 (일종의 백업 시스템) 2) shutil (Shell Utils) 모듈- 파일이나 디렉터리를 복사, 이동, 리네임, 삭제를 수행하는 모듈  3. shtil 모듈 : copy 1) 파일과 디렉터리 복사 - shutil.copy(source, destination) 2) 파일 이동과 이름 바꾸기- shutil.move(source, destin..

[Python] 13. 파이썬 파일 다루기 - glob모듈, getcwd, chdir, dir name, base name, readline 함수

A. 파일1. 프로그램이 실행 중일 때는 데이터를 램(RAM)에 저장한다. - RAM은 휘발성  2. 데이터의 영구저장(Persistence)을 위해 파일을 사용한다. - 디스크와 같은 비휘발성(non-volatile) 장치를 사용  3. 파일의 생성과 사용에 관련된 내용을 다룸 - 디렉터리의 이동과 생성, 삭제 - 파일의 생성, 쓰기, 읽기 B. 파일 - 쓰기와 읽기 1. 파일과 파일경로- 리눅스와 맥에서는 ( / )를 사용, 윈도우에서는 ( \ ) 사용  2.윈도우의 dir과 리눅스의 ls 명령과 유사한 - glob 모듈 - glob.glob(‘*’) : 현재 디렉터리의 모든 파일을 리스트로 반환  C. 디렉터리 관리 1. 현재 작업 디렉터리 : Current Working Directory - o..

[Python] 12. 파이썬 정규 표현식(2) - re모듈 임포트, 그룹핑, findall, 플래그, VERBOSE

A. 정규식 1. search() : 첫 번째 일치하는 객체를 반환한다.  1) re 모듈 임포트 : import re 2) re.compile() 함수로 Regex 객체를 생성 (raw string 사용) 3) search() 함수의 파라미터로 검색할 문자를 전달 – Match 객체를 반환 4) group() 함수로 실제 매칭된(검색된) 문자열 리턴  2. 그룹핑 : 괄호를 사용하여 정규식(regex)에 그룹을 생성할 수 있다. - (\d\d\d)-(\d\d\d-\d\d\d\d) : group() 함수 사용 - () 문자 자체를 사용하려면 \(, \)를 사용  3. findall() : 모두 일치하는 문자열을 리스트로 반환- search() 는 매칭되는 첫 번째 패턴을 반환, findall() 모든 패..

[Python] 11. 파이썬 정규 표현식(1) - 정규식 문법, 전화번호 패턴, 이메일 패턴, 텍스트 패턴 검색

A. 정규식 : Regular Expression1. 텍스트를 검색할 때 Ctrl+F 로 찾는 것을 조금 더 발전시킨 형태- 글자 자체를 가지고 찾는 게 아니라 패턴이라는 것을 사용함 - 오피스 프로그램은 찾기(바꾸기) 기능에서 정규식을 지원함 2. 정규식 사용 사례- 입력 유효성 체크(Form Validation) : 이메일 주소가 맞는지 아닌지- 텍스트에서 특정 부분을 추출 : 우편번호 추출- 특정 텍스트 바꾸기 : 계란 -> 달걀- 큰 텍스트를 작게 쪼개기 : 콤마나 점으로 구분해서 문장 쪼개기 3. 정규식 문법 배우기- / ... / 속에 패턴을 표기 4. 패턴으로 찾기 데모 : 다음 세 개의 패턴으로 정규식을 배우자- 010-3456-0123 : 전화번호 패턴 나타내기- soongon@gmal...

[Python] 10. 파이썬 문자열 다루기 - len, split, join, in, uppser, isupper, isX, startwith, 포매팅

A. 문자열 관련 함수 1. 문자열 길이 : len() 2. 문자열 나누기 : split()- split 함수를 통한 문자열 분리 : 특정 문자를 중심으로 문자를 분리하는 함수 3. 문자열로 결합 : join() 4. in, not in 연산자 5. upper(), lower(), isupper(), islower() 함수 6. isX 문자열 함수- isalpha() : 문자로만 구성 시 True - isalnum() : 문자와 숫자로만 구성 시 True - isdecimal() : 숫자로만 구성 시 True - isspace() : 공백으로만 구성 시 True - istitle() : 문장 내 모든 단어가 대문자로 시작되면 True - 입력 유효성 체크로 사용   7. startswith(), ends..

[Python] 9. 파이썬 모듈과 pip - 코어모듈, 써드파티 모듈, pypi, pip 설치, 패키지, 데모, 내장 함수

A. 모 듈 1. 프로그램이 복잡해질수록 한 파일로 프로그램을 유지하기가 힘들어짐  2. 파이썬 모듈로 분리해서 프로그램 좀 더 구조화할 수 있음 - 파이썬 파일로 별도로 분리 - import 문을 통해 모듈 사용 3. 모듈을 import 하는 세 가지 방법- import os - from os import listdir - import os as winos 4. 모듈 만들기  5. 코어모듈 : 파이썬 설치 시 제공되는 내장 모듈 >>> import sys >>> sys.path 를 통해 모듈이 설치된 경로를 확인할 수 있음   6. 써드파티 모듈 : 외부 모듈로써 별도로 설치가 필요함 - 파이썬 커뮤니티에 의해 지금도 계속 개발되고 배포되고 있음   7. 써드파티 모듈 설치 관리자 : pypi- 파이썬..

[Python] 8. 파이썬 함수 - define, call, return, main, 함수 파라미터, 가변 파라미터

1. 함수1) 함수는 왜 사용하는가? - 프로그램 읽고 이해하기 - 코드의 재사용 - 생산성과 품질 향상 2) 함수의 두 가지 작업- 정의하기 : define - 호출하기 : call  3) 함수의 정의- 함수 선언은 def로 시작 - 함수의 시작과 끝은 들여쓰기(indentation)로 구분 - 시작과 끝을 명시하지 않음 - 함수 이름 뒤에 오는 ( ) 안에 함수로 전달하는 인자(파라미터)를 적음  4) Parameter 와 Return  5) 함수 - 함수 만들기 연습① cube라는 이름의 함수를 만들어서 number라는 파라미터를 받는다. ② 파라미터로 받은 숫자를 세제곱 하는 코드를 만든다. (자기 숫자를 세 번 곱한다.) ③ by_three라는 두 번째 함수를 만들고 number라는 파라미터를..

반응형