Programming 50

파이썬으로 구글 드라이브의 스프레드시트 파일에 데이터 추가하기

구글 공유 드라이브에 정기적으로 업데이트하는 스프리드시트 파일이 있는 경우가 많을 것이다.파이썬으로 작업한 데이터를 이 스프레드시트 파일에 자동으로 업데이트하는 방법을 다룬다. 기본적인 원리는 1. 기존 파일 다운로드2. 새 데이터 추가3. 업데이트된 파일 다시 업로드이다. 1. Google Cloud Console 설정만약 구글 클라이드 콘솔에서 구글 드라이브 API를 설정한 적이 없다면 해야 한다.아래 블로그를 참고하면 된다.Python으로 특정한 파일을 Google Drive 자동 업로드하기 핵심은 credentials.json 파일을 내가 작업하고 있는 파일에 저장하는 것이다. 2. 업데이트할 파일의 file_id 얻기폴더 id와 마찬가지로 url의 뒷부분에서 확인할 수 있다. 단, csv 파일은..

Programming/Python 2024.06.28

Python으로 특정한 파일을 Google Drive 자동 업로드하기

준비 사항Python 3.xpip (Python 패키지 관리자)Google 계정Google Cloud Console 프로젝트1단계: 필요한 라이브러리 설치pip install google-auth-oauthlib google-auth-httplib2 google-api-python-client pandas2단계: Google Cloud Console 설정Google Cloud Console에 접속새 프로젝트를 생성하거나 기존 프로젝트를 선택API 및 서비스 대시보드로 이동하여 "Google Drive API"를 활성화 4. 사용자 인증 정보를 만들고 OAuth 2.0 클라이언트 ID를 다운로드5. 다운로드한 JSON 파일의 이름을 credentials.json으로 변경하고 작업 디렉토리에 저장3단계: P..

Programming/Python 2024.06.28

Q.맥 실리콘 (Macbook Pro M1)에서 파이썬 3.7 버전의 가상환경 만드는 방법은?

환경 MacOS v12.6 Apple M1 Pro chip 파이썬 가상환경 버전 관리를 맥에서 아나콘다 가상환경 구성 -> 윈도우에서 virtualenv 구성으로 하다가 업무용 컴퓨터가 맥 M1으로 바뀌면서 그냥 virtualenv으로 가상환경 구성을 하고 파이썬 버전은 3.9을 고정으로 사용하고 있었다. 참고 맥, 리눅스에서 python anaconda 가상 환경 생성, 확인, 삭제 하기 (mac, linux) Q. jupyter notebook 파일을 실행할 때 새로운 가상환경을 만들고 이용하는 방법은? Q. 윈도우 환경에서 아나콘다 없이 가상환경 설정, 주피터 노트북 사용하는 방법은? 그런데 본격적으로 여러 모델들을 다루게 되면서 3.7 이하의 파이썬 버전에서 빌딩한 모델을 테스트해보게 되었는데 ,..

Programming/Python 2022.11.01

Q. 여러 개의 파이썬 파일로 구성된 프로그램을 exe 실행 파일로 만들기 - cx_Freeze 와 pyinstaller

main.py와 main.py에서 모듈로 import해서 사용하는 py들로 구성된 간단한 애플리케이션을 만들었다. 그런데 이걸 exe파일로 만들어주라고 한다. 응?? 윈도우에 프로그램 깔 때 쓰는 그 .exe 파일? 조금 검색해보니 파이썬이 깔려있지 않은 환경에서도 내가 만든 애플리케이션을 사용할 수 있게 만들어 주는 것이라고 한다. 실제 실행을 할 때는 하나의 .py 파일로 끝나는 앱이든, 여러 개의 .py을 모듈로 불러와서 실행하는 앱이든 큰 차이는 없이, 실행 파일에 대해서만 exe를 만들면 된다. 나는 pyinstaller와 cx_Freeze를 모두 시도해봤는데 내 경험에 미루어보자면, 처음에는 pyinstaller가 간단해보였지만, 결과적으로 cx_Freeze에서 setup.py를 만들고, 필요..

Programming/Python 2021.12.21

파이썬 코딩 테스트, 알고리즘 공부 추천 강의 , 코드카데미 추천 코스

알고리즘, 자료구조, 코딩테스트 공부를 하긴 해야겠다라고 생각해서, 라는 책을 구매하고, 그 책에서 챕터 별로 나오는 리트코드 연습문제를 같이 풀면서 공부했었다. 그러다 KDT 코스, 구글 부트캠프 코스에 참여해서, 인공지능 과정에 대해서 공부하고, 프로젝트 참여하고, 또 수료 조건인 자격증 공부하고, 응시하고, 하다보니 알고리즘/코딩테스트 공부에 시간을 많이 할애하지 못했고, 까먹고, 또 기초적인 문제 외에는 풀기 어려워서 좌절하고, 자신감도 많이 떨어져 있었다. 참여했던 프로그램들도 모두 끝나가고, 스스로 계속 공부를 해야하는데, 코드카데미에 자료구조/알고리즘 공부에 도움되는 코스가 있어서 추천한다. 코드카데미 파이썬 테크니컬 인터뷰 통과하기 코스 https://www.codecademy.com/le..

알고리즘 테스트, 코딩 테스트를 위한 Dynamic Programming 공부자료

코딩 테스트.. 많이는 아니지만 몇 번 쳐보니 마지막 1,2 문제에서 변별력이 생기고, 그 어려운 문제들은 몇 가지 정해진 영역에서 주로 출제되는 것 같다. 알면서도 못푼다. dynamic programming 도 그런 영역 중 하나. 리트코드에서 문제 안풀려서 discussion으로 보다가 이 영상 시리즈를 추천하는 글이 있어서 올려본다. 한 개발자가 자기가 dynamic programming 을 이해하기 어려워하다가 익히고 나서 다른 사람들을 위해 설명하려고 만든 시리즈라고 한다. 영상 하나 아니고 17개 짜리 시리즈지만, 십분정도 되는 짧은 영상도 있어서, 하나씩 볼만하다.. https://youtu.be/jTjRGe0wRvI

leetcode 108. Convert Sorted Array to Binary Search Tree 정렬된 배열의 이진 탐색 트리 변환 문제풀이

책에서 다룬 리트코드 문제들을 풀이한 포스팅이다. 문제는 모두 리트코드에 출제된 문제들이며, 직접 풀었지만, 책에서 주는 힌트와 풀이 과정들을 참고한 경우가 많다. 이곳은 정리한 책에 나온 문제에 대한 목록과 해설을 정리한 공식 깃허브 페이지 이며, 다음 포스팅은 내가 푼 문제 풀이 목록을 정리해 놓았다. 문제 https://leetcode.com/problems/convert-sorted-array-to-binary-search-tree/ Convert Sorted Array to Binary Search Tree - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowl..

leetcode 1399. Count Largest Group 리트코드 1399번 가장 큰 그룹의 숫자 세기 문제 풀이

책에서 다룬 리트코드 문제들을 파이썬으로 풀이한 포스팅이다. 문제는 모두 리트코드에 출제된 문제들이며, 직접 풀었지만, 책에서 주는 힌트와 풀이 과정들을 참고한 경우가 많다. 이곳은 정리한 책에 나온 문제에 대한 목록과 해설을 정리한 공식 깃허브 페이지 이며, 다음 포스팅은 내가 푼 문제 풀이 목록을 정리해 놓았다. 문제 https://leetcode.com/problems/count-largest-group/ Count Largest Group - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next inte..

leetcode42. Trapping Rain Water 빗물 트래핑 문제풀이

책에서 다룬 리트코드 문제들을 풀이한 포스팅이다. 문제는 모두 리트코드에 출제된 문제들이며, 직접 풀었지만, 책에서 주는 힌트와 풀이 과정들을 참고한 경우가 많다. 이곳은 정리한 책에 나온 문제에 대한 목록과 해설을 정리한 공식 깃허브 페이지 이며, 다음 포스팅은 내가 푼 문제 풀이 목록을 정리해 놓았다. 문제 https://leetcode.com/problems/trapping-rain-water 입력: 땅에 쌓아올린 벽돌의 높이를 기록한 리스트 출력: 물이 고인 양을 합한 양의 정수 문제 요약: 그림으로 그리면 이해가 쉽다. 예제 1번은 [0,1,0,2,1,0,1,3,2,1,2,1]인데, 이를 그림으로 그리면 아래의 검은 블록과 같고, 물이 고인 양은 파란색의 합과 같다. 유의 사항: 제일 처음과 제..

배열의 index와 value를 전달해주는 enumerate() 함수

파이썬의 리스트, 튜플 같은 iterable 한 자료형에서 각 요소의 위치와 값을 반환해주는 함수이다. 그런데 그냥 enumerate()함수를 print하면 enumerate object를 반환할 뿐이어서, 우리가 원하는 index, value를 직접 얻을 수가 없다. lst = ['a','b','c','d'] print(enumerate(lst)) >> 그래서 주로 for 문과 함께 쓰인다. dic = {} for k, v in enumerate(lst): dic[k]= v 이렇게 하면 lst의 인덱스를 key, 값을 value로 하는 딕셔너리를 생성할 수 있다. dic >> {0: 'a', 1: 'b', 2: 'c', 3: 'd'}

Programming/Python 2021.06.21

배열에 아이템을 추가하는 메서드 .append(), .extend(), .insert() 비교

파이썬3에서 배열에 아이템을 추가하는 메서드는 .append(), .extend(), .insert() 등이 있는데, 특징에 차이가 있으므로 그 차이를 잘 기억해두자. 1. append() 가장 일반적으로 쓰이는 메서드. 기존 배열의 뒤에 () 안의 아이템이 들어가게 된다. a = ['a','b','c','d'] a.append('a') a >> ['a', 'b', 'c', 'd', 'a'] 문제는 append() 안에 배열을 넣을 경우, 배열 째로 들어가게 된다. a = ['a','b','c','d'] b = ['e','f'] a.append(b) a >> ['a', 'b', 'c', 'd', ['e', 'f']] 2. extend() append() 대신 extend()를 쓰게 되면 배열 안의 각 아..

Programming/Python 2021.06.21

leetcode 621. Task Scheduler 과업 스케줄러 문제풀이

책에서 다룬 리트코드 문제들을 풀이한 포스팅이다. 문제는 모두 리트코드에 출제된 문제들이며, 직접 풀었지만, 책에서 주는 힌트와 풀이 과정들을 참고한 경우가 많다. 이곳은 정리한 책에 나온 문제에 대한 목록과 해설을 정리한 공식 깃허브 페이지 이며, 다음 포스팅은 내가 푼 문제 풀이 목록을 정리해 놓았다. 문제 https://leetcode.com/problems/task-scheduler/ Task Scheduler - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode...

leetcode 739. Daily Temperatures 일일 온도 문제 풀이

책에서 다룬 리트코드 문제들을 풀이한 포스팅이다. 문제는 모두 리트코드에 출제된 문제들이며, 직접 풀었지만, 책에서 주는 힌트와 풀이 과정들을 참고한 경우가 많다. 이곳은 정리한 책에 나온 문제에 대한 목록과 해설을 정리한 공식 깃허브 페이지 이며, 다음 포스팅은 내가 푼 문제 풀이 목록을 정리해 놓았다. 문제 https://leetcode.com/problems/daily-temperatures/ Daily Temperatures - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. l..