파이썬 16

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

구글 공유 드라이브에 정기적으로 업데이트하는 스프리드시트 파일이 있는 경우가 많을 것이다.파이썬으로 작업한 데이터를 이 스프레드시트 파일에 자동으로 업데이트하는 방법을 다룬다. 기본적인 원리는 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. 윈도우 환경에서 아나콘다 없이 가상환경 설정, 주피터 노트북 사용하는 방법은?

환경 Windows 10 Pro python 3.8.10 IDE - PyCharm Communityn Eddition 2021.3 처음 파이썬과 데이터 분석을 배울 때, 강사 선생님이 아나콘다부터 깔아서 사용하고, 가상환경도 콘다를 이용해 설정하는 것을 가르쳐 주셨던 기억이 난다. 그런데 쓰면 쓸수록 무겁고, 경로 설정도 헷갈리고, 깔끔하게 아나콘다 없이 환경 관리를 하고 싶어졌다. 감사하게도 회사 컴퓨터를 gpu 3060이 달린 pc로 바꾸게 되어, 새롭게 환경 설정을 하게 되었고, 이제 처음부터 콘다 없는 깔끔한 환경과 경로를 유지하고 있다. Q 1. 아나콘다 없이 가상환경 설정하는 방법은? A. venv 또는 virtualenv로 하면 된다. 순전히 취향 차이인데 나는 virtualenv를 사용한다..

windows10 WSL 우분투에서 도커로 elasticsearch 8.3.0 설치 및 실행

엘라스틱서치는 역색인을 통해 풀텍스트서치를 지원해주어 검색의 속도와 성능이 뛰어나다고 들었다. NLP 솔루션 과정에서 엘라스틱서치를 활용할 수 있는지 모색하기 위해 엘라스틱서치를 설치하고 파이썬 클라이언트 패키지를 활용해 노트북에서 사용해봤다. 내 환경 : windows10 pro WSL2 ubuntu 20.04.4 LTS Docker Image 내려받기 Docker Image(https://www.docker.elastic.co)에서 os 및 버전에 맞게 선택 docker pull [docker.elastic.co/elasticsearch/elasticsearch:8.3.0-amd64]() 파이썬 클라이언트 패키지 설치, 엘라스틱 버전에 맞춰서 버전 설정해서 설치 pip3 install elastics..

OS/Windows 2022.07.20

Q. "ModuleNotFoundError: No module named 'ipython_genutils'\r\n" 에러 해결 방법은?

환경 Windows 10 Pro python 3.8.12 IDE - Visual Studio Code 파일 포맷 - .ipynb 에러 발생 상황 내가 작업하고 있던 컴퓨터에 다른 분이 원격 접속해 주피터 노트북에서 작성한 .ipynb 파일 작업을 하셨다. 정확히 어떤 작업을 하셨는지는 알지 못하지만, 내가 만든 가상환경 안에서 작업을 하신 상황. 원격 작업이 끝난 뒤에 내가 다시 작업을 하게 되었고, 이미 내가 기존에 만든 가상환경들에서 여러 에러를 경험하고 있는 상황. https://rollingsnowball.tistory.com/263 Q. The kernel failed to start due to an error with the Win32api module. Consider (re) instal..

카테고리 없음 2022.01.06

Q. ImportError: cannot import name 'filefind' from 'traitlets.utils' (C:\\ProgramData\\Anaconda3\\lib\\site-packages\\traitlets\\utils\\__init__.py) 에러 해결방법은?

환경 Windows 10 Pro python 3.8.12 IDE - Visual Studio Code 파일 포맷 - .ipynb 에러 발생 상황 내가 작업하고 있던 컴퓨터에 다른 분이 원격 접속해 주피터 노트북에서 작성한 .ipynb 파일 작업을 하셨다. 정확히 어떤 작업을 하셨는지는 알지 못하지만, 내가 만든 가상환경 안에서 작업을 하신 상황. 원격 작업이 끝난 뒤에 내가 다시 작업을 하게 되었고, 다른 폴더의 다른 파일을 작업하려 했으나 모듈을 import하는 첫번 째 셀부터 실행이 되지 않았다. 다른 가상환경에서는 이미 다른 에러를 경험해서 해결한 바 있는 상황. https://rollingsnowball.tistory.com/263 Q. The kernel failed to start due to..

카테고리 없음 2022.01.06

Q. The kernel failed to start due to an error with the Win32api module. Consider (re) installing this module. View Jupyter [log](command:jupyter.viewOutput) for further details. 에러 해결 방법은?

환경 Windows 10 Pro python 3.8.12 IDE - Visual Studio Code 에러 발생 상황 내가 작업하고 있던 컴퓨터에 다른 분이 원격 접속해 주피터 노트북에서 작성한 .ipynb 파일 작업을 하셨다. 정확히 어떤 작업을 하셨는지는 알지 못하지만, 내가 만든 가상환경 안에서 작업을 하신 상황. 원격 작업이 끝난 뒤에 내가 다시 작업을 하게 되었고, 다른 폴더의 다른 파일을 작업하려 했으나 모듈을 import하는 첫번 째 셀부터 실행이 되지 않았다. 에러 메세지 The kernel failed to start due to an error with the Win32api module. Consider (re) installing this module. View Jupyter [lo..

카테고리 없음 2022.01.06

Q. FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\User\\AppData\\Local\\Temp\\_MEI146082\\soynlp\\noun/frequent_enrolled_josa.txt'[11696] Failed to execute script 'main' due to unhandled exception! 에러 해결방법은?

환경 Windows 10 Pro python 3.8.12 IDE - Visual Studio Code 에러 발생 상황 파이썬으로 작성한 자연어 처리 프로그램을 pyinstaller를 통해서 exe 실행파일로 만들었다. konlpy와 soynlp로 형태소 분석, 명사 추출 등을 수행하는 전처리 과정이 포함된 프로그램이다. 여러가지 지저분한 .dll 파일들이 포함되는 옵션에서는 실행파일이 잘 실행됨을 확인하였다. 그 다음에 --F 옵션을 활용하여 one-file로 만들고, 실행파일이 잘 돌아가는지 테스트하는데 에러가 발생했다. 에러 메세지 FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\User\\AppData\\Local\\Temp\..

카테고리 없음 2021.12.21

leetcode 5. Longest Palindromic Substring 리트코드 5. 가장 긴 팰린드롬 부분 문자열

책에서 다룬 리트코드 문제들을 풀이한 포스팅이다. 문제는 모두 리트코드에 출제된 문제들이며, 직접 풀었지만, 책에서 주는 힌트와 풀이 과정들을 참고한 경우가 많다. 이곳은 정리한 책에 나온 문제에 대한 목록과 해설을 정리한 공식 깃허브 페이지 이며, 다음 포스팅은 내가 푼 문제 풀이 목록을 정리해 놓았다. 문제 가장 긴 팰린드롬 부분 문자열 입력: 문자열 출력: 문자열 문제 요약: 주어진 문자열에서 찾을 수 있는 가장 긴 팰린드롬을 출력하기 유의 사항: 예를 보면 "a", "ac" 가 입력일 때 모두 "a"가 출력되었다. len(a)이 1이거나 같은 팰린드롬이 없을 때는 a[0]이 출력되는 듯 그리고, 문자열 내에 대문자/소문자 모두 들어가 있다고 하니까 .lower()를 통해 모두 소문자로 변환해줘야할..

leetcode 49. Group Anagrams 리트코드 49. 그룹 애너그램 문제 풀이

책에서 다룬 리트코드 문제들을 풀이한 포스팅이다. 문제는 모두 리트코드에 출제된 문제들이며, 직접 풀었지만, 책에서 주는 힌트와 풀이 과정들을 참고한 경우가 많다. 이곳은 정리한 책에 나온 문제에 대한 목록과 해설을 정리한 공식 깃허브 페이지 이며, 다음 포스팅은 내가 푼 문제 풀이 목록을 정리해 놓았다. 문제 그룹 애너그램 입력: 문자열로 된 리스트 출력: 문자열로 된 리스트의 리스트 문제 요약: 애너그램은 문자를 재배열하여 다른 뜻을 가진 단어로 바꾸는 것을 뜻한다고 한다. (출처: 파이썬 알고리즘 인터뷰) 예를 들어 'eat' 과 'tea' 와 같은 것이다. 유의 사항: strs[i].length == 0 인 경우도 포함된다. 즉, 아무것도 없는 빈 원소까지 고려해서 짜야 한다. 생각 과정 같은 애..

leetcode 937. Reorder Data in Log Files 리트코드 937. 로그 파일 재정렬 풀이

책에서 다룬 리트코드 문제들을 풀이한 포스팅이다. 문제는 모두 리트코드에 출제된 문제들이며, 직접 풀었지만, 책에서 주는 힌트와 풀이 과정들을 참고한 경우가 많다. 이곳은 정리한 책에 나온 문제에 대한 목록과 해설을 정리한 공식 깃허브 페이지 이며, 다음 포스팅은 내가 푼 문제 풀이 목록을 정리해 놓았다. 문제 리트코드 로그파일 재정렬 입력: list (string) 출력: list (string) 문제 요약: string이 원소인 리스트를 받아 정렬만 해서 다시 리스트로 출력한다. 그런데, 정렬의 기준이 조금 달라서 그 기준에 맞춰 정렬해야 한다는 점이 포인트 생각 과정 일단 각 원소를 띄어쓰기를 기준으로 쪼개서 리스트로 만든 다음, 각 로그의 첫번째 부분은 식별자라고 해서 식별자와 나머지로 나눠보았다..

leetcode 819. Most Common Word 리트코드 819. 가장 흔한 단어 문제 풀이

책에서 다룬 리트코드 문제들을 풀이한 포스팅이다. 문제는 모두 리트코드에 출제된 문제들이며, 직접 풀었지만, 책에서 주는 힌트와 풀이 과정들을 참고한 경우가 많다. 이곳은 정리한 책에 나온 문제에 대한 목록과 해설을 정리한 공식 깃허브 페이지 이며, 다음 포스팅은 내가 푼 문제 풀이 목록을 정리해 놓았다. 문제 leetcode.com/problems/most-common-word/ 입력 : string data type인 paragraph , list data type인 banned 출력: string data type 문제 요약: 가장 자주 등장하는 단어를 고른다. 단, 따로 뽑아 놓은 banned 리스트에 있는 단어는 제외하고. 생각 과정 1. 하나의 문장을 단어 단위로 쪼개고, (.split()) ..

.get() 딕셔너리에서 key를 사용해 value 얻기

dict_name[key] 입력 : key 출력: value 파이썬의 딕셔너리는 key, value 쌍으로 이루어진 해시형 자료구조이다. john = {'phone': '01840125784' , 'birthday': '19930512' , 'e-mail': 'johndoe@gmail.com' } 특정 key 값에 있는 value를 호출하고 있으면, dict_name[key] 를 사용하는데, dict_name.get(key)를 써도 똑같은 값을 return 한다. print(john['phone']) print(john.get('phone')) >> '01840125784' '01840125784' 둘의 차이점은 딕셔너리에 없는 key 값으로 호출할 때 있다. dict_name[key] 는 KeyErro..

Programming/Python 2021.05.04