본문 바로가기

코딩/Python8

[Python] for문에서 전역변수 설정하기 - for문에서 변수를 설정한 경우, for문 안에서만 사용된다 - globals()함수를 사용하면 for문 안에서 전역변수를 저장할 수 있다. csv_file_list =['근로소득백분위(상위1%천분위)자료(2015년귀속).csv', '근로소득백분위(상위1%천분위)자료(2019년귀속).csv', '근로소득백분위(상위1%천분위)자료(2018년귀속).csv', '근로소득백분위(상위1%천분위)자료(2016년귀속).csv', '근로소득백분위(상위1%천분위)자료(2020년귀속).csv', '근로소득백분위(상위1%천분위)자료(2017년귀속).csv'] for i in csv_file_list: print(i) #파일명 문자열에서 연도를 나타내는 문자열 가져오기 print(i[-17:-13]) year = i[-1.. 2022. 9. 30.
[Python] Selenium 오류 메시지 해결, no such element: unable to locate element (HTML 내 F 1. 문제 발생 - 여행 도중, 셔틀버스 예약을 해야 했는데 가려고 한 날짜에 표가 모두 매진이었다. 그러나 가끔 취소표가 나오고 있었다. - 취소표 확인을 위해 계속 웹사이트를 새로고침하고 있을 수는 없는 일이어서, 1분 간격으로 조회하여 텔레그램 봇을 통해 메시지를 보내주는 자동화 코드를 작성하기로 하였다. - 이를 위해서는, 페이지 접속 후 캘린더에서 9/24일을 클릭하여 각 시간대별로 남은 자리가 있는지를 확인해야 한다. - 그런데 목표로 한 날짜인 9/24를 클릭하려고 하는 도중 다음과 같은 에러가 발생하였다. Message: no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id='ctl00_leftNav.. 2022. 9. 21.
[AWS Lambda] Layer를 사용하여 라이브러리 업로드 AWS Lambda에 파이썬 코드를 올려서 실행하는 것에는 시행착오가 꽤 있을 것 같다. 내 PC의 경우 코드 실행에 필요한 라이브러리 등이 설치되어 있으므로 코드가 실행되지만, 아마존 서버에서 실행하려면 이러한 라이브러리 파일 등을 업로드해야 한다. 두 가지 방법이 있는데, 첫째는 zip 파일 형태로 코드와 함께 업로드하는 것이고 두 번째는 Layer라는 것을 이용해서 업로드하고 코드에서 사용하는 것이다. 아래 블로그를 참고하여 배울 수 있을 것 같다. https://blog.naver.com/chandong83/221852027113 AWS 람다(AWS Lambda) 계층(Layer)를 이용해 파이썬 패키지(Package, Library) 사용하기 aws 람다를 작성하다 보면 기본 제공 패키지 외에 .. 2022. 9. 17.
[Python] 해당 폴더에 파이썬 모듈 설치하는 방법 - 명령 프롬프트에서 cd 명령어를 통해 대상 폴더로 이동. - "pip3 install 모듈명 -t ." 입력하여 해당 폴더 안에 모듈 설치 가능. - 맥북 폴더명은 특수문자 또는 스페이스 없애 두는 것이 좋다. cd desktop cd AWS_Lambda pip3 install bs4 -t . 2022. 9. 15.
[Python] while 조건문에 True 입력하면 무한루프 while 조건식에 True 입력하면 무한 반복 가능. while True; print('Hello, world') 2022. 9. 15.
[Python] telegram 모듈 설치 관련 - pip install telegram이 아니라 pip install python-telegram-bot으로 설치해야 함 - 그렇지 않으면 Bot을 찾을 수 없다는 오류 발생 pip3 install python-telegram-bot 2022. 9. 15.
[Python] Pandas 컬럼의 문자열 위치 기준 슬라이싱 - 파이썬 Pandas 사용 중 문자열을 슬라이싱하는 경우가 있다. - 아래의 Seperator는 종목코드와 보고서 종류(분기, 반기 or 온기)를 표시하는데, 이를 종목코드와 보고서종류로 나누는 작업이 필요하다/. - DataFrame['열_이름'].str.slice(start=시작 위치, stop=끝 위치) - 시작 위치는 포함, 끝 위치는 미포함 - 문자 8개가 필요하고, 0번째 위치부터 7째 위치까지 사용하므로 아래와 같이 설정한다. - 보고서 종류는 문자열 시작 위치만 지정해 주고 끝은 설정하지 않는다. dart_data_BS_2['종목코드'] = dart_data_BS_2['seperator'].str.slice(start=0,stop=8) dart_data_BS_2['보고서종류'] = dar.. 2022. 9. 13.
[Python] 오늘 기준 직전 영업일 확인 - 주가 정보는 매일 업데이트된다. 다만 영업일이 아니면 조회가 안되므로 직전영업일 기준 자료를 가져오기 위해 판다스 패키지 내에 있는 Bday 기능을 사용한다. - datetime.today() 결과는 초단위까지 나오므로 strftime()기능을 통해 연-월-일 형식으로 바꿔준다. #날짜 설정(직전영업일) import pandas as pd from pandas.tseries.offsets import BDay from datetime import datetime, timedelta today = datetime.today().strftime("%Y%m%d") yesterday = (datetime.today()-BDay(1)).strftime("%Y%m%d") print(today, yesterday.. 2022. 7. 17.