by joviansummer original STEEMIT post: https://steemit.com/blog/@joviansummer/datetime-timezone 파이썬에서 datetime.timezone()을 이용해서 datetime 객체의 시간대를 설정할 수 있습니다. 예를 들어 한국시간(KST)은 GMT+9시간이므로 아래와 같이 설정해서 현재 시각을 구할 수 있습니다. import datetime KST = datetime.timezone(datetime.timedelta(hours=9)) now_kst = datetime.datetime.now(tz=KST) 시간대 정보가 없는 datetime 객체의 경우에는 앞의 예제 코드에서 정의된 변수 KST를 이용해서 아래와 같이 시간대를 할당할 수 있습니다. # 시간대 정보 없는 UTC 기준 현재시각 가져오기 - utcnow() now = datetime.datetime.utcnow() # 시간대 정보 추가 now_kst = now.astimezone(KST) @joviansummer의 스팀 프로젝트 스팀 증인노드를 운영중입니다. @jswit에 증인투표해 주시면 감사하겠습니다. ( https://steemitwallet.com/~witnesses ) jswit 증인 노드 프로젝트를 시작합니다. jsup 업보팅(upvoting) 서비스 소개 jsup 수혜자 지정 기능 추가 jsup 2.0 - 업보팅을 다시 위대하게 jSTEEM 프로젝트 - 텔레그램 챗봇으로 구현하는 스팀 블럭체인 탐색기 Steemit-Search - 스팀잇 포스팅 검색 STEEM.NFT - 디지털 아트 보존 프로젝트
파이썬에서 디렉토리 생성(os.mkdir, os.makedirs)
- Get link
- Other Apps
by joviansummer
original STEEMIT post: https://steemit.com/blog/@joviansummer/os-mkdir-os-makedirs
파이썬에서 디렉토리를 생성하는 방법입니다. 상위 디렉토리가 모두 존재하는 경우, os.mkdir() 함수를 이용하면 됩니다.
import os
os.mkdir('/run/shm/test')
위의 예시는 /run/shm 디렉토리 하위에 test 디렉토리를 만드는 경우입니다.
만약 /run/shm 디렉토리 하위에 test2/test 디렉토리를 만들고 싶은데 /run/shm/test2 디렉토리가 존재하지 않는다면, 위의 os.mkdir() 함수에서는 오류가 발생하게 됩니다. 이 경우에는 os.makedirs() 함수를 이용합니다. 리눅스에서 "mkdir -p"와 같은 기능입니다.
os.makedirs('/run/shm/test2/test')
만약 이미 해당 디렉토리가 존재하고 있는데 만들려고 시도한다면 오류가 발생합니다. os.makedirs()의 경우 exist_ok=True라고 지정해 주면 이미 존재하는 디렉토리일 경우에도 오류 메시지를 표시하지 않고 무시합니다.
os.makedirs('/run/shm/test2/test', exist_ok=True)
@joviansummer의 스팀 프로젝트
스팀 증인노드를 운영중입니다. @jswit에 증인투표해 주시면 감사하겠습니다.
(https://steemitwallet.com/~witnesses)
Popular posts from this blog
Nuitka - 파이썬 스크립트를 바이너리 실행 파일로 변환
by joviansummer original STEEMIT post: https://steemit.com/blog/@joviansummer/nuitka 파이썬과 관련해서 재미 있는 프로젝트를 찾았습니다. Nuitka라는 프로젝트입니다. https://github.com/Nuitka/Nuitka 파이썬 스크립트를 C언어로 변환한 후에 컴파일하여 바이너리 실행 파일로 만들어준다고 합니다. 아직 사용해 보진 않았는데요. 라즈베리파이처럼 작은 컴퓨터에서 컴퓨팅 자원이 아쉬운 상황이라면 파이썬 스크립트를 직접 실행하는 것보다 Nuitka로 컴파일한 바이너리를 실행하면 자원이 절약될 것 같기도 합니다. 소스 코드를 공개하지 않아야 할 경우(코드에 패스워드가 포함되어 있는 경우 등)에도 사용할 수 있을 것 같네요. 어쨌든 나중에 필요할 수도 있을 듯해서 여기에 메모해 둡니다. @joviansummer의 스팀 프로젝트 스팀 증인노드를 운영중입니다. @jswit에 증인투표해 주시면 감사하겠습니다. ( https://steemitwallet.com/~witnesses ) jswit 증인 노드 프로젝트를 시작합니다. jsup 업보팅(upvoting) 서비스 소개 jsup 수혜자 지정 기능 추가 jSTEEM 프로젝트 - 텔레그램 챗봇으로 구현하는 스팀 블럭체인 탐색기 STEEM.NFT - 디지털 아트 보존 프로젝트
파이썬에서 스팀잇 ID 및 포스팅 키 유효성 확인
by joviansummer original STEEMIT post: https://steemit.com/blog/@joviansummer/id 파이썬에서 스팀잇 ID와 포스팅 키가 유효한지 확인하는 방법입니다. steem-python 모듈을 활용합니다. steem-python 먼저 포스팅 키가 유효한지 확인하는 과정은 아래의 코드로 가능합니다. import steem STEEMIT_ID="joviansummer" POSTING_KEY="my_posting_key" # 포스팅 키 유효성 확인 try: user = steem.Steem(keys=[POSTING_KEY]) except: print("포스팅 키가 유효하지 않습니다.") print("유효한 포스팅 키입니다.") 포스팅 키가 유효한지 확인이 되었으면 이제 이 포스팅 키의 주인이 스팀잇 ID와 일치하는지 확인합니다. 위의 코드에 이어서 아래의 코드로 가능합니다. (인터넷에서 발견하고 적어 두었는데 어디에서 찾았었는지 기억이 안 나네요.) from steembase.account import PrivateKey # 포스팅 키에 대응하는 공개키(public key) pubkey = PrivateKey(POSTING_KEY).pubkey # 스팀잇 ID에 대응하는 공개키 account = user.get_account(STEEM_ID) pubkey2 = account['posting']['key_auths'][0][0] # 양쪽 공개키가 일치하는지 확인 if str(pubkey) == str(pubkey2): print("스팀잇ID와 포스팅 키가 일치합니다.") else: print("스팀잇ID와 포스팅 키가 일치하지 않습니다.") 오토보팅 서비스 개발은 주중에 틈틈이 설계하고 구상하면서 메모해 놓은 아이디어를 주말에 시간을 내서 구체적으로
파이썬에서 시간대(timezone) 변경
by joviansummer original STEEMIT post: https://steemit.com/blog/@joviansummer/timezone 파이썬에서 시간대(timezone)를 변경하는 방법을 간단하게 메모해 둡니다. datetime 모듈과 dateutil 모듈을 사용해서 현재 시간을 다른 시간대로 변환해서 출력할 수 있습니다. from datetime import datetime import pytz # 현재 시각을 UTC/GMT 기준으로 now에 할당 now = datetime.utcnow() # 현재 시각을 지역 시간대 기준으로 now_local에 할당 now_local = datetime.now() datetime 객체인 now에 저장된 시간 정보를 원하는 형식에 맞춰서 문자열로 출력하기 위해 strftime() 함수를 이용합니다. # 현재 시각 출력 (UTC/GMT) now.strftime("%Y-%m-%d %H:%M:%S") '2021-04-10 13:48:54' # 현재 시각 출력 (KST) now_local.strftime("%Y-%m-%d %H:%M:%S") '2021-04-10 22:48:54' 위의 값은 UTC/GMT 기준이므로, 이것을 한국 시간대로 바꿉니다. 우선 시간대 정보(tzinfo)를 가져와 변수 UTC, KST에 할당합니다. # 한국 시간대 정보를 KST에 할당 UTC = pytz.timezone('UTC') KST = pytz.timezone('Asia/Seoul') now에 할당된 datetime 객체에 시간대가 GMT/UTC라는 정보를 추가합니다. # now의 시간대 정보를 UTC로 설정하여 now_utc에 할당 now_utc = now.replace(tzinfo=UTC) now_utc의 시간대가 GMT/UTC라고 명시되었으므로, 이 시간 정보를 다른 시간대 기준으로 환산할 수 있습니다.
Comments
Post a Comment