728x90

Python 18

[Python] __init__.py 뭐하는 파일인가요?

나는 Java 개발자... 아니 웹 개발자... 아니... 어... 개발자가 되고 싶은 사람이다. 요즘 회사에서 Python을 깨작깨작 만지고 있는데 갑자기 어느 순간부터 이 텅 비어있는 '__init__.py'란 파일이 신경 쓰였다. 처음에는 IDLE이 만든 파일인가 싶었는데 그런 파일을 팀의 소스 저장소에 올릴 거라는 생각은 들지 않아서 찾아보니 바로 Python의 패키지라는 것을 알려주는 파일이었다. PyCharm에서는 그 차이를 확실히 느낄 수 있었는데 위 사진에서 'just_directory'는 일반 폴더처럼 표시되어있지만, 'package_directory'는 __init__.py 파일이 있어 아이콘이 살짝 다른 것을 볼 수 있다. 아니 근데 __init__.py 파일을 만들지 않아도 패키지로..

Python 2022.01.10

[Python] Selenium을 이용한 스크린샷 저장하기

필요한 것은 아니었지만 각 사이트의 메인화면을 스크린샷으로 찍어두는 프로그램이 있었으면 하는 상황이 있었었다. 물론 결국 필요해지진 않았지만 Selenium을 이용한 스크린샷을 찍는 방법을 정리한 다면 나중에 쓸 일이 있을 것 같아 정리를 하기로 하였다. selenium으로 스크린샷을 저장하는 방법은 매우 간단하다. # driver 기본 설정 후 driver를 반환 driver = open_driver() driver.get(url) driver.save_screenshot(path) driver의 save_screenshot()을 사용하면 끝이 난다. from selenium import webdriver def open_driver(): options = webdriver.ChromeOptions()..

Python 2021.12.01

[Python] Python 반복문 개선하기

지난 포스팅에 코드 실행시간을 측정하는 방법을 찾아보게 된 이유가 어떤 Python 코드의 동작 시간이 오래 걸렸다는 이슈가 있어 찾아보게 되었다고 했었는데, 그 이슈 때문에 내가 작성했던 Python 코드도 다시 한번 보게 되었다. 물론 해당 이슈는 반복문을 돌면서 돌 때마다 요청을 보내고 응답을 기다린 뒤 응답을 처리하는 과정을 거치기 때문에 속도 문제가 발생한 것이고, 내가 작성했던 코드에서는 요청을 한 번 보내고 받아온 응답을 반복문을 돌면서 처리하기 때문에 그와 같은 문제는 발생하지 않을 것 같았다. 아직 실제 테스트를 해보지 않아서 어떤 문제가 발생할지는 모른다... 1. 기존 코드 문제는 없을 것 같았지만 내가 짠 코드에 가장 큰 문제점은 가독성이었는데 (다른 문제도 많을 것이지만 현재 내 ..

Python 2021.11.16

[Python] Python 코드 실행시간 측정하기

Python 코드 실행시간을 측정하는 방법도 Java와 크게 다르지 않다. 1. time.time() 이용하기 가장 간단한 방법이다. time.time()을 사용하여 시작 시간과 종료 시간을 저장해 그 차이를 계산하는 방법이다. start_time = time.time() # 작업 코드 end_time = time.time() print('코드 실행 시간: %20ds' % (end_time - start_time)) 단위는 초 단위이다. 파이썬에서 가장 마음에 드는 부분이 이렇게 초 단위를 사용한다는 점이다. 그런데 만약에 1초도 안 걸리는 코드의 실행시간을 측정하고 싶다면?? start_time = time.time_ns() # 작업 코드 end_time = time.time_ns() print('코드..

Python 2021.11.12

[Selenium] Selenium Expected Condition 정리

이전 Selenium의 명시적 대기를 정리하면서 expected condition을 그냥 번역기로 정리해서 대충 살펴보았다. 하지만 번역기로 번역하였기에 이해가 가지 않는 부분들이 많았고 직접 하나씩 확인해보며 어떤 상태인지 알아보기로 하였다. 머리가 나쁘면 몸이 고생한다. 1. title_is(title) 우선 title_is는 파라미터로 str 타입의 text를 받는다. title_is는 head에 선언된 title의 속성을 비교하는데 쉽게 말해 탭에 표시되는 제목을 확인하는 것이다. driver = open_driver() driver.get("https://naver.com") try: wait = WebDriverWait(driver, 5).until( EC.title_is('NAVER') ) ..

Python 2021.10.30

[Selenium] Selenium Waits(대기) 정리

셀레니움을 사용하다 보면 페이지 로딩 시간 또는 동적 페이지로 인해 요소가 불러와질 때까지 기다려야 하는 상황이 발생한다. 만약 요소가 없을 때 요소를 찾으려는 함수가 호출되면 ElementNotVisibleException이 발생하기 때문에 꼭 요소가 나타날 때까지 기다렸다가 진행해 주어야 한다. 사실 파이썬이나 셀레니움을 사용하는 경우가 별로 없어서 그전까지 대기가 필요하면 그냥 Python의 sleep()을 사용하였다. from time import sleep sleep(1)# 1초 대기 sleep(0.5)# 0.5초 대기 Python의 sleep 같은 경우에는 인수로 ms 단위가 아닌 초(sec) 단위의 숫자를 받기 때문에 사용하기에 매우 직관적이다. 그렇기 때문에 간단한 대기나 짧은 시간의 대기..

Python 2021.10.25

[Python] 문자열 내에 리스트(배열) 안에 있는 문자가 포함되어있는지 검사하기

any() 함수를 사용한다. check_str = ['apple', 'banana', 'orange'] target_str = 'I eat banana' if any(str in targer_str for str in check_str): # 있을 경우 if 문 실행 print(target_str) Python에서 문자열 내에 리스트(배열) 안에 있는 문자가 포함되어있는지 검사해야 하는 상황이 생겼다. String과 String을 비교할 경우에는 find() 혹은 index()를 사용하면 되는데 리스트는 따로 함수가 없는 것 같았다. 참고로 find()와 index() 함수는 모두 문자열 내에서 인수로 전달된 문자나 문자열에 해당하는 인덱스 위치를 찾아주는 함수인데 차이점은 다음과 같다. find()는 ..

Python 2021.08.30

[Python] 파이썬으로 개발 문서를 만들어보자! Sphinx!

개발 문서를 제대로 만들어본 적은 없지만 실력이 있는 개발자가 되기 위해서는 API나 개발 문서를 잘 작성해야 한다는 생각이 든다. 그러다 Python의 Sphinx를 이용하면 개발 문서를 쉽고 예쁘게 작성할 수 있다는 글을 보게 되었다. Python documentation의 하단에도 'Created using Sphinx 2.4.4.'라는 문구가 적혀 있었다. Sphinx 사용해보기 pip install Sphinx 우선 Sphinx를 사용하기 위해서는 pip을 사용하여 Sphinx를 설치해야 한다. 설치가 끝났다면 sphinx-quickstart 를 사용해 개발 문서를 만들면 된다. 선택한 루트 경로는 .으로 바로 설정이 되고 다음으로 두 가지 옵션 중 선택하라고 안내가 뜬다. y를 입력할 경우 루..

Python 2021.07.30
728x90