본문 바로가기

개발자/파이썬 Python

블로그 제목 파일로 저장하기 2 기억에 의존한 생각은 현실과 기억에 대한 분별력을 잃게 되는 가장 쉬운 길이다. 기억을 하지 말라고 하는 말이 아니다. 기억이 현실에 영향을 미치는 것을 최소화해야 한다. 아무런 힘도 미치지 못하면 가장 좋겠지만 절대 그럴 수는 없다. 사건과 상황의 그늘을 지나쳐 왔다면 어떤 식으로든 우리는 영향을 받는다. 이것을 만드는 이유는 나중에 목록화를 자동으로 하려고 한다. 블로그 글 쓴 것을 리스트로 만들어 일정 기간 포스팅 한 글을 분석하고 개수를 세고 정리하기 위해서다. 결과가 잘 나온다면 아래와 같은 결과를 자동으로 얻을 수 있다. 전문가는 쉬워 보여도 배우는 사람은 한참 고생해야 얻을 수 있는 결과다. 모든 것들이 그렇다. 쉽게 할 수 있을 때까지 반복, 반복, 또 반복하는 수밖에 없다. 티스토리 글 ..
[Python] datetime 날짜와 시간 포맷 출력하기 datetime 객체로부터 날짜와 시간을 가져올 때 기본 형식말고 원하는 대로 포맷을 바꿔주고 싶을때는 strftime() 메소드를 사용해서 원하는 포맷을 파라미터로 넣어주면 됩니다. 예를 들어, 2021-06-23 형식으로 표시하고 싶다면 포맷을 넣는 곳에 %Y/%m/%d 를 써주면 됩니다. import datetime now = datetime.datetime.now() now_date = now.strftime('%Y/%m/%d') print(now_date) 결과 2021/06/23 12시 11분 32초 형식으로 표시하고 싶다면, %H시 %M분 %S초 를 포맷으로 넘겨주시면 됩니다. import datetime now = datetime.datetime.now() now_time = now.str..
블로그 제목 파일로 저장하기 1 단어를 배웠으면 빠른 시간 안에 그 단어를 스무 번은 사용한다. 코드를 배웠다면 배운 코드를 곧바로 적용하는 프로그램을 몇 개 만들어 본다. 가장 빨리 배우는 방식은 동사형을 사용해 살아갈 때다. 뭉텅이의 코드가 제대로 돌아가기 위해서는 하나의 세상을 창조해야 한다. 그 세상은 아쉬운 게 없고 더 추가하거나 뺄 것도 없는 세상이다. 그것들은 감추어져 있어 눈에 띄지 않으며, 견고하지만 유연하고, 물처럼 흘러 자유롭다. 그리하여 코드는 개발자와 똑같은 속성을 가진다. 많은 일, 더 많은 시도와 같은 수의 실패가 완벽함을 만든다. 작가 앤 라모트(Anne Lamott)는 글쓰기 수업에서 글을 쓸 때 부딪히는 도전적인 상황에 대해 말했다 "하나의 작품을 완성하는 데 중요한 것은 정말 엉망진창인 초안을 써보는 ..
파이선 웹 스크래퍼 만들어 보자. 코드 2 앞의 코드 1 에서 작성한 코드를 재사용성을 높이고 파일로 별도 보관하기 위해 분리한다. 폴더 구조는 아래와 같고 main.py 코드는 아래와 같다. from requests import get from bs4 import BeautifulSoup from extractors.wwr import extract_wwr_jobs jobs = extract_wwr_jobs("python") print(jobs) 위 폴더 구조 이미지에서 폴더 extractors 를 만들고 이전 작업한 코드를 wwr.py 파일로 분리하여 만들었다. wwr.py 코드는 아래와 같다. from requests import get from bs4 import BeautifulSoup def extract_wwr_jobs(keyword..
파이선 웹 스크래퍼 만들어 보자. 코드 1 파이선 표준 라이브러리 문서 사이트 샘플 사이트로 자료를 얻어온 사이트 we work remotely 필요한 곳은 BeautifulSoup 패키지 설명 자료 서버에서 보내오는 HTTP 응답 상태 코드 , HTTP 상태 코드 정리한 다른 자료 파이선 라이브러리를 찾고 설명 자료 Python Package Index 공부한 곳 마지막 링크인데 5.9 Recap 설명부터 본다. Python으로 웹 스크래퍼 만들기 from requests import get websites = ( "google.com", "airbnb.com", "https://twitter.com", "facebook.com", "https://tiktok.com" ) results = {} for website in websites: if..
파이선 용어집 리얼파이선 24 용어집 >>> 대화형 셸의 기본 파이썬 프롬프트. 인터프리터에서 대화형으로 실행될 수 있는 코드 예에서 자주 볼 수 있습니다. ... 다음과 같은 것들을 가리킬 수 있습니다: 들여쓰기 된 코드 블록의 코드를 입력할 때, 쌍을 이루는 구분자 (괄호, 대괄호, 중괄호) 안에 코드를 입력할 때, 데코레이터 지정 후의 대화형 셸의 기본 파이썬 프롬프트. Ellipsis 내장 상수. 2to3 파이썬 2.x 코드를 파이썬 3.x 코드로 변환하려고 시도하는 도구인데, 소스를 구문 분석하고 구문 분석 트리를 탐색해서 감지할 수 있는 대부분의 비호환성을 다룹니다. 2to3 는 표준 라이브러리에서 lib2to3 로 제공됩니다; 독립적으로 실행할 수 있는 스크립트는 Tools/scripts/2to3 로 제공됩니다. 2to3..
파이선 에러와 예외처리. 리얼파이선 23 에러와 예외 지금까지 에러 메시지가 언급되지는 않았지만, 예제들을 직접 해보았다면 아마도 몇몇 개를 보았을 것입니다. (적어도) 두 가지 구별되는 에러들이 있습니다; 문법 에러 와 예외. 문법 에러 문법 에러는, 파싱 에러라고도 알려져 있습니다, 아마도 여러분이 파이썬을 배우고 있는 동안에는 가장 자주 만나는 종류의 불평일 것입니다: >>> while True print('Hello world') File "", line 1 while True print('Hello world') ^ SyntaxError: invalid syntax 파서는 문제가 되는 줄을 다시 보여주고 줄에서 에러가 감지된 가장 앞의 위치를 가리키는 작은 〈화살표’를 표시합니다. 에러는 화살표 앞에 오는 토큰이 원인입니다 (또는 적어..
파이선 표준 라이브러리 2. 리얼파이선 22 표준 라이브러리 둘러보기 2. 리얼파이선 22 이 두 번째 둘러보기는 전문 프로그래밍 요구 사항을 지원하는 고급 모듈을 다루고 있습니다. 이러한 모듈은 작은 스크립트에서는 거의 사용되지 않습니다. 출력 포매팅 reprlib 모듈은 크거나 깊게 중첩된 컨테이너의 축약 된 디스플레이를 위해 커스터마이즈된 repr() 의 버전을 제공합니다: >>> import reprlib >>> reprlib.repr(set('supercalifragilisticexpialidocious')) "{'a', 'c', 'd', 'e', 'f', 'g', ...}" pprint 모듈은 인터프리터가 읽을 수 있는 방식으로 내장 객체나 사용자 정의 객체를 인쇄하는 것을 보다 정교하게 제어할 수 있게 합니다. 결과가 한 줄보다 길면 ..
파이선 표준 라이브러리 1. 리얼파이선 21 표준 라이브러리 둘러보기 1. 리얼파이선 21 표준 라이브러리 둘러보기 운영 체제 인터페이스 os 모듈은 운영 체제와 상호 작용하기 위한 수십 가지 함수들을 제공합니다: >>> import os >>> os.getcwd() # Return the current working directory 'C:\\Python310' >>> os.chdir('/server/accesslogs') # Change current working directory >>> os.system('mkdir today') # Run the command mkdir in the system shell 0 from os import * 대신에 import os 스타일을 사용해야 합니다. 그래야 os.open() 이 내장 open() 을..
파이선 클래스 기초 3. 리얼파이선 20 파이선 클래스 기초 3. 리얼파이선 20 상속 물론, 상속을 지원하지 않는다면 언어 기능은 《클래스》라는 이름을 붙일만한 가치가 없을 것입니다. 파생 클래스 정의의 문법은 이렇게 생겼습니다: class DerivedClassName(BaseClassName): . . . 이름 BaseClassName 은 파생 클래스 정의를 포함하는 스코프에 정의되어 있어야 합니다. 베이스 클래스 이름의 자리에 다른 임의의 표현식도 허락됩니다. 예를 들어, 베이스 클래스가 다른 모듈에 정의되어 있을 때 유용합니다: class DerivedClassName(modname.BaseClassName): 파생 클래스 정의의 실행은 베이스 클래스와 같은 방식으로 진행됩니다. 클래스 객체가 만들어질 때, 베이스 클래스가 기억됩니다...
파이선 클래스 기초 2. 리얼파이선 19 파이선 클래스 기초 2. 리얼파이선 19 클래스와의 첫 만남 클래스는 약간의 새 문법과 세 개의 객체형과 몇 가지 새 개념들을 도입합니다. 클래스 정의 문법 클래스 정의의 가장 간단한 형태는 이렇게 생겼습니다: class ClassName: . . . 함수 정의(def 문)처럼, 클래스 정의는 어떤 효과가 생기기 위해서는 먼저 실행되어야 합니다. (상상컨대 클래스 정의를 if 문의 분기나 함수 내부에 놓을 수 있습니다) 실재적으로, 클래스 정의 내부의 문장들은 보통 함수 정의들이지만, 다른 문장들도 허락되고 때로 쓸모가 있습니다 — 나중에 이 주제로 돌아올 것입니다. 클래스 내부의 함수 정의는 보통, 메서드 호출 규약의 영향을 받은, 특별한 형태의 인자 목록을 갖습니다. — 다시, 이것은 뒤에서 설명됩니..
파이선 클래스 기초 1. 리얼파이선 18 9. 클래스 클래스는 데이터와 기능을 함께 묶는 방법을 제공합니다. 새 클래스를 만드는 것은 객체의 새 데이터 형을 만들어서, 그 형의 새 인스턴스를 만들 수 있도록 합니다. 각 클래스 인스턴스는 상태를 유지하기 위해 그 자신에게 첨부된 어트리뷰트를 가질 수 있습니다. 클래스 인스턴스는 상태를 바꾸기 위한 (클래스에 의해 정의된) 메서드도 가질 수 있습니다. 다른 프로그래밍 언어들과 비교할 때, 파이썬의 클래스 메커니즘은 최소한의 새로운 문법과 개념을 써서 클래스를 추가합니다. C++과 모듈라-3에서 발견되는 클래스 메커니즘을 혼합합니다. 파이썬 클래스는 객체 지향형 프로그래밍의 모든 표준 기능들을 제공합니다: 클래스 상속 메커니즘은 다중 베이스 클래스를 허락하고, 자식 클래스는 베이스 클래스나 클래스들..