본문 바로가기

코딩25

Dart 언어 문법 삼항 연산자 및 ?, ?? 사용 var visiblity = isPublic ? 'public' : 'private'; String playerName(String name) => name ?? 'Guest'; 1. Dart는 삼항 연산자 사용이 가능하다. 첫 번째 줄에서 isPublic이 true면 'public', 아니면 'private'를 visiblity에 할당한다. 2. "??"는 if null, null 인식 연산자다. 두 번째 줄에서 playerName에 name을 할당한다. 만약 name이 null이라면 'Guest'를 playerName에 할당한다. 2023. 4. 8.
[Python] 2015~2020년 대한민국 근로소득 불평등도는 어떻게 변했을까?(지니계수, 로렌츠곡선) 1. 시작 국세청에서는 매년 백분위별 근로소득 자료를 공개한다. 최근에 블라인드에서 연봉 1억 넘는 사람들이 정말 많아졌다는 글을 본 것 같았는데, 그렇게 고소득자가 많아졌다면 실제로 불평등도가 높아졌는지 숫자로 확인해 보고 싶었다. 2. 작업방법 스프레드시트 형태로 된 연도별 근로소득 자료를 다운로드 받아서, 파이썬의 Pandas를 이용하여 가공한 후 Matplotblib을 통해 그래프를 그린다. 세전 수입 금액 기준으로 만들었다. 3. 지니계수 복습 경제학 시간에 배웠던 지니계수와 로렌츠곡선을 복습할 시간이다. 통계청에 설명자료가 있다. https://kostat.go.kr/understand/info/info_lge/1/detail_lang.action?bmode=detail_lang&pageNo=.. 2022. 12. 11.
[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과 python selenium bot을 이용하여 취소표 빈자리 알림 보내기 - 미국 여행 도중, 셔틀버스 예약을 해야 입장할 수 있는 관광지가 있었다. - 그러나 방문하기로 한 날짜가 얼마 남지 않아서 남은 자리는 없는 상황이었다. - 무작정 새로고침을 계속 누르기보다는, 셀레니움을 통해 일정 간격마다 웹페이지에 접속해서 빈자리가 날 때 텔레그램 메시지를 보내도록 코드를 작성하였다. from selenium import webdriver from selenium.webdriver.chrome.service import Service from selenium.webdriver.chrome.options import Options from selenium.webdriver.common.by import By from selenium.webdriver.common.keys impor.. 2022. 9. 29.
[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.
[AWS Lambda] "[Errno 30] Read-only file system: '/home/sbx_user1051'" 에러 발생 - 셀레니움을 이용한 파이썬 코드를 AWS Lambda에 올려 PC를 사용하고 있지 않을 때에도 웹페이지 새글 스크래핑을 하려 했다. - 라이브러리 등은 zip 파일 형태로 AWS Lambda에 업로드하였으나 테스트 진행시 아래와 같은 에러가 발생하였다. "[Errno 30] Read-only file system: '/home/sbx_user1051'", - 파이썬 코드의 webdriver_manager를 실행하는 과정에서 발생하는 오류인 것으로 보인다. webdriver_manager 모듈은 사용하고 있는 브라우저 버전에 맞는 chromedriver를 자동으로 다운받기 위해 사용하는 것인데, 에러 메시지를 보면, readonly 파일에 쓰기를 시도했다는 내용으로 추정된다. - chromedriver .. 2022. 9. 17.
[AWS Lambda] 작성한 파이썬 코드를 PC를 켜지 않고 실행하기 - 지난번에 파이썬 특정 페이지에 새 글이 올라오면 텔레그램 봇을 통해 알림을 보내느 코드를 작성하였다. 2022.09.14 - [코딩] - [Python] 특정 페이지에 새 글이 올라오면 알림을 보내는 코드 [Python] 특정 페이지에 새 글이 올라오면 알림을 보내는 코드 - 특정 사이트에 새 글이 올라오면 텔레그램 봇을 통해 알림을 보내주는 코드를 작성했다. - 정적 사이트의 경우 BS4를 통해 파싱하는 것이 효율적이고 가볍지만, 내가 목표로 하는 사이트의 경우 sayyoung.tistory.com - 해당 코드를 실행시켜 두면 새 글이 올라올 때 알림이 오는 것까지는 구현하였다. - 문제는, 코드 실행을 위해 PC를 계속 켜 둘 수 없다는 것이다. 진정한 의미에서 자동화라고 보기 어렵다. - 따라.. 2022. 9. 17.
명령 프롬프트에서 폴더 내 모든 파일 압축 zip -r modules.zip . 2022. 9. 15.
[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.