Language/Python (47) 썸네일형 리스트형 datetime과 시간대 HTML 삽입 미리보기할 수 없는 소스 DateTime datetime은 날짜와 시간 정보를 함께 저장하는 클래스이다. 현재시간을 나타내는 datetime.now() 메서드를 통해 알아보자. from datetime import datetime ct = datetime.now() print(ct) # Output # 2023-01-15 13:27:40.177895 날짜 정보와 시간 정보를 접근할 수 있는 속성을 가진다. 날짜 정보는 year, month, day 시간 정보는 time, second, microsecond이다. print(ct.year, ct.month, ct.day) # 2023 1 15 print(ct.minute, ct.second, ct.microsecond) # 27 40 1778.. exit와 sys.exit은 무슨 차이일까 ? HTML 삽입 미리보기할 수 없는 소스 개요 exit와 sys.exit 두 가지 함수는 Python에서 프로그램을 종료시키기 위한 용도로 사용한다. 그런데 왜 프로그램을 강제 종료하는 기능을 가지는 함수가 두 가지나 있을까? 1. 공통점 : 둘 다 SystemExit를 발생시킨다. 공통점은 SystemExit Exception을 발생시킨다. 코드로 설명하자면 다음과 같다. # builtin - exit() try: exit(1) except SystemExit as e: print(e.args) # Result # (1,) import sys try: sys.exit(1) except SystemExit as e: print(e.args) # Result # (1,) 어려운 코드가 아니니 구체적으로 설명.. Name Magling Name Magling이란 Name Maggline은 변수나 메서드 앞에 언더바(_) 두 개를 붙여서 다른 이름으로 바꿔 버리는 것을 말한다 이름을 바꾼다고? 속성으로 foo를 가지고 있는 클래스가 존재한다. Namespace를 보게 되면 마지막 foo 그대로 Namespace에 존재하는 걸 확인할 수 있다. class Sample: def __init__(self): self.foo = 'a' [..., 'foo'] 이어서 foo 앞에 언더바(_) 두 개를 붙여서 Namespace를 확인해보자 class Sample: def __init__(self): self.__foo = 'a' ['_Sample__foo', ...] foo라고 존재하던 속성이 ‘_Sample_foo’라고 변경된 것을 확인할 수 있.. [SQLAlchemy] declarative_base 로부터 DB에 테이블 생성하기 HTML 삽입 미리보기할 수 없는 소스 개요 django의 manage.py에서 migrate에 관련된 기능을 보면 django 내부에 선언된 Model로부터 DataBase에 Migrate를 해주는 명령이 존재한다. $ python manage.py makemigrations $ python manage.py migrate django에서는 위와 같은 방식으로 정의한 ORM을 DB에다 테이블을 생성 혹은 업데이트 해준다. SQLAlChemy에서도 이와 비슷한 방식을 지원 도구가 있는데 alembic이다. 그런데 alembic을 사용하지 않고 declarative_base로 선언된 model로 SQL Statement를 추출하고 이를 어떻게 DB 반영할 수 있을까? alembic ? 굳이 ? sqlalc.. 파이썬 오라클 DB 연동과 에러 대처 이전 블로그에서 백업된 내용입니다. 개요 파이썬과 오라클DB를 연결하기 위한 라이브러리는 cx_Oracle이며 조사하면 이에 관한 글이 많이 나옵니다 파이썬 3.7.x 버전 기준으로 해당 라이브러리를 설치하고 이용해본 결과 에러가 발생했습니다. cx_Oracle 라이브러리와 오라클 db에 연결하기 위해 시도했던 내용을 남기고자 합니다. 설치하기 라이브러리 자체는 설치가 간단합니다. 윈도우 cmd 에서 다음과 같이 입력하면 됩니다. $ pip install cx_oracle pycharm을 이용해서 설치할 경우 cx-oracle로 검색하면 패키지가 검색됩니다. 검색된 cx-oracle 패키지로 다운로드 받으셔도 됩니다. 연동을 위해 필요한 것 cx_oracle 자체 패키지로는 오라클 db와 연결이 되지 않.. Boolean Trap Boolean Trap def some(up:bool): if up: return to_json() return to_dict() 위와 같은 코드를 보고 some이라는 메서드의 내용을 문서를 보기 전에 유추할 수 있는가? 아마 그렇지 못할 것이다. Parameter에 bool를 넘김으로써 동작을 제어하려고 시도했지만 코드를 읽는 사람 관점에서는 some이라는 Method의 동작 내용을 문서를 참고하기 전까지는 자세히 모를 것이다. 이를 Boolean Trap이라 부른다(Anti Pattern) Solution Multiple Function 해당 메서드의 내용을 세분화하자 def some_to_json() ... def some_to_dict() ... 하지만 위 방법에는 메서드의 기능이 거의 없는 경우.. 구글 스프레드시트 이용 시 gspread 설정하기 INSTALL pip install gspread Setup GCP 에서 설정할 부분 API 및 서비스 메뉴 사용자 인증 정보 > 사용자 인증 정보 > 사용자 인증 정보 만들기 서비스 계정를 선택하여 서비스 계정을 만들자 위 단계를 거치고 나면 인증 정보가 포함된 json 파일을 얻을 수 있다. 인증정보.json { "type": "...", "project_id": "...", "private_key_id": "...", "private_key": "...", "client_email": "...", "client_id": "...", "auth_uri": "...", "token_uri": "...", "auth_provider_x509_cert_url": "...", "client_x509_cert.. 프로세스의 실행 경로 가져오기 개요 WMI()로 현재 열려있는 파일 경로를 가져오려고 시도해봤습니다. 방법이 나오지 않던 차에 psutil 라이브러리를 이용하면 해결할 수 있었기에 psutil 라이브러리를 통해 현재 열려있는 특정 파일의 경로를 가져와보는 방법을 적어보고자 합니다. psutil 설치 psutil은 기본적으로 설치되어있는 라이브러리는 아닙니다. pip 명령어를 통해 설치합니다. pip install psutil 실행 중인 Process 항목 가져오기 import psutil for process in psutil.process_iter(): print(process) process_iter()는 현재 실행되고 있는 process의 정보를 iterable 하게 변환해줍니다. 각각의 process 정보를 for문으로 pri.. 이전 1 2 3 4 5 6 다음