반응형

개발자/파이썬 Python 59

파이썬 파일 찾고 읽고 쓰고 복사 이동 삭제 코드

파이썬의 장점 중 하나는 일률적인 업무를 돕는 프로그램을 쉽게 만들 수 있다는 점이다. 이런 것이 가능한 이유는 파일과 디렉터리를 쉽게 관리할 수 있기 때문이다. 파일, 디렉터리 관리와 관련된 패키지는 os, shutil이다. 각각 용도에 따라 다르게 사용된다. # file Detection import os path = "C:\\Users\\User\\Desktop\\test.txt" if os.path.exists(path): print("That location exists!") if os.path.isfile(path): print("That is a file") elif os.path.isdir(path): print("That is a directory!") else: print("That l..

파이썬 pptx 파일 자동화 python-pptx 라이브러리

요즘 수많은 업무 자동화 프로그램과 웹사이트에서 어떤 방식으로 사용자 요청 작업을 실행하고, 결과를 어떤 형태로든 다운로드할 수 있도록 하는지 궁금했다. 특히 웹을 통해 문서를 생성하고 만들고 수정하는 작업들, 예를 들면 배경 화면 제거, 문서 이미지로 변환하기나 반대로, 번역이나 음성을 텍스트로 만들기 등이 모두 자동으로 진행하는데 어떤 방식으로 하는지 알고 싶었다. 좀 더 일찍 검색하고 찾아봤다면 하는 생각이 든다. 항상 먼저 대가를 치를 준비를 해야 한다. 머리는 비상하고, 행동은 민첩하고, 반짝반짝 빛나는 아이디어가 넘칠 때 생각하고, 실행하다가 포기하고 멈춘 것들은 이제 모두 현실이 되었지만 바로 그 지점에 남자는 없다는 생각이 참담할 뿐이다. 잘못한 길에 들어섰다면 다시 뒤로 물러나 수정하고 ..

파이썬 퀴즈 문제 만들고 정답 확인하는 코드

문제를 내면 사용자가 정답을 입력하고 검사하여 결과를 알려주는 코드 두 가지 예제 코드 1번과 2번은 크게 다르지 않은데 1번 예제는 question과 답안 문항과 정답을 튜플과 리스트로 만든 경우이고, 2번 예제는 문제를 저장하는 튜플에 정답을 포함시키고, 게임 시작하는 부분, 정답을 체크하는 부분, 결과를 출력하는 부분을 각각 함수로 만들었다. 2번 코드를 추천한다. 두 가지 코드를 비교해 보았다. 2번 예제가 더욱 간결해 보이는 이유는 아마도 함수를 써서 작성했고 코드가 복잡하지 않다. 1번 예제 # Python quiz game questions = ("How many elements are in the periodic table?: ", "Which animal lays the largest e..

파이썬 가위 바위 보 게임 코드

파이썬으로 가위 바위 보를 구현한 코드 코드에서는 컴퓨터와 사용자가 가위 바위 보 게임을 하는데 elif 구문을 사용해 구현하였다. 코드도 간단하고 로직이 분명하다. 컴퓨터는 랜덤으로 생성하고 사용자는 셋 중의 하나를 입력한다. 둘이 동일할 경우 게임은 끝나고, 사용자가 이길 경우만 elif 구문으로 구현한다. 사용자가 이기지 못한 경우를 제외하면 컴퓨터가 이긴 경우다. "삶이 세속에서 벗어날 때에야, 우리는 나무가 말하는 것을 듣고, 흐르는 시냇물에서 책을 발견하며, 돌에서 교훈을 얻고, 존재한 모든 것들로부터 좋은 점을 발견할 수 있다." - 셰익스피어, 뜻대로 하세요. 중 제2장 1막. import random options = ("rock", "paper", "scissors") running =..

블로그 제목 파일로 저장하기 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(..

블로그 제목 파일로 저장하기 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 문의 분기나 함수 내부에 놓을 수 있습니다) 실재적으로, 클래스 정의 내부의 문장들은 보통 함수 정의들이지만, 다른 문장들도 허락되고 때로 쓸모가 있습니다 — 나중에 이 주제로 돌아올 것입니다. 클래스 내부의 함수 정의는 보통, 메서드 호출 규약의 영향을 받은, 특별한 형태의 인자 목록을 갖습니다. — 다시, 이것은 뒤에서 설명됩니..

반응형