try :
1.
try:
connect_str = os.getenv('AZURE_STORAGE_CONNECTION_STRING')
print(connect_str)
# Create the BlobServiceClient object which will be used to create a container client
blob_service_client = BlobServiceClient.from_connection_string(connect_str)
# Instantiate a ContainerClient
container_client = blob_service_client.get_container_client(
"smartwatchdata")
blobs_filename_list = container_client.list_blobs()
(1) 연결키 환경변수에 넣기
(2) 환경변수로 blob 연결.
(3) 원하는 container(smartwatchdata) 연결하는 service_client 생성
(4) 들어간 container의 blob list 출력하기
스스로 여기까지 한 뒤 출력했었는데
출력에서 address 오류가 나서
이 코드를 참고하기로 했었다.
2. import re 이용한다.
"import re가 무엇일까?"
1. 정규표현식의 기초
일대일 매칭되는 문자
: 정규표현식 안에서, 바로 다음 절에서 설명하는 메타문자를 제외한 모든 문자 하나는 일반 문자열 하나와 매칭된다.
메타문자
: 어떤 프로그래밍 언어의 정규표현식이든 메타문자라는 것이 존재한다.
메타문자 '어떤 특수한 기능을 하는 문자'로 import 등 파이썬의 예약어와 비슷한 역할을 맡는 문자라고 생각하면 된다.
파이썬 re 모듈의 메타문자는 총 12개로
$()*+.?[\^{|
이들 매타문자는 각각
결국 import re를 써서
blob리스트 중에서 내가 원하는 이름 값만 있는 것들로 재배치 재정렬해서 출력하려고 사용한 것이다.
blob 들 중에 원하는 날짜값을 re.match로 이용해서 원하는 데이터 출력 위함
3. re.match() 아래 조건문 이해하기
(1) 코드에서 쓰인 re.match() 인자값 형식이 (폴더/파일명)으로 들어간다
이에 대한 의문점이 생겼는데.
breakpoint 을 이용해서
container_client.list_blobs()의 인자값의 속성을 보았다.
속성들 중 'name' 키를 가진 value의 값이 폴더/파일명.mp4으로 되었던 것 .
(2) watch_sn = blob_filename.name.split('/')[-1].split('_')[0] 코드 이해 못함
split 의 의미가 나눈다는 것을 알고 있었는데 [-1]의 의미와 spilt.split를 몰랐다.
1. blob_filename.name ==
'2020-12-09/20IHPA00104A_201209_114006_DF3B40F0A3EB.mp4'
2. split('/')[-1] ==
20IHPA00104A_201209_114006_DF3B40F0A3EB.mp4'
처음 안 사실 마지막의 인덱스의 값이 [-1]으로 쓰인다.. 구글링해도 안나오는디;
3. split('_')[0] ==
20IHPA00104A
호호.. 그렇구만!
'끄적끄적 인턴생활 (2020) > 슬랙봇 만들기(2020)' 카테고리의 다른 글
Slack bot READ_ME (2021 ver.) (0) | 2022.01.17 |
---|---|
Blob_excel list automation 샘플코드 분석(1) (0) | 2022.01.17 |
blob_list 출력하기에서의 bug 원인 및 해결 (0) | 2021.12.28 |
slack bot 이제 다시 시작! (0) | 2021.12.28 |
python request module 정리 (0) | 2021.12.28 |