20220418 월요일
- 오늘은 다같이 이미지에서 작업자를 선별하는 작업하는 작업을 했다.
그제, 어제 학습셋 3개로 사람을 디텍팅해서 사람있음/없음/불확실함으로 나눠뒀었는데
(3개 모두가 사람이 있다고 하면 있음/없다고 하면 없음/결과가 갈리면 불확실함)
결국 전부를 살피자는 의견이 나와서 그렇게 했다. 아쉬웠다. 모두의 시간을 아끼고 싶었는데.
그래도 나눠둬서 도움이 됐다는 얘기를 들었다.
- 작업자 외의 다른 것들(사람이지만 작업자로 분류하지 않는 것)을 빼내는 작업도 필요하다는 걸 깨달아서 따로 빼내서 확인했다.
아래는 거기에 사용한 나약한 코드
import json
import glob
import shutil
import os
SRC_PATH = --------
DEST_PATH = --------
TARGET = 'SM'
def read_json():
list_of_files = glob.glob(SRC_PATH + "*.json")
# list_of_files = glob.glob("D:/files_lyw/test_files/*.json")
for file_name in list_of_files:
fin = open(file_name, "rt", encoding='UTF8')
json_data = json.load(fin)
count_of_labels = len(json_data["shapes"])
count_of_target_object = 0
if count_of_labels > 0:
for index in range(count_of_labels):
label_name = str(json_data["shapes"][index]["label"]).strip().split('_')
object_name = label_name[0]
if object_name == TARGET:
count_of_target_object += 1
break
fin.close()
if count_of_target_object >= 1:
file_name_without_ext, ext = os.path.splitext(file_name)
base_file_name = os.path.basename(file_name_without_ext)
try:
shutil.move(file_name, DEST_PATH + base_file_name +".json")
shutil.move(file_name_without_ext + '.jpg', DEST_PATH + base_file_name + '.jpg')
except:
print(file_name + ' 경로 오류')
read_json()
이전에 만들었던 걸 좀 고쳐서 쓰는데,
파일을 옮기려고 하니 이상하게 오류가 나는 것이다.
처음에는 옮긴 걸 또 옮기려고 하니까 나는건가? 하고 생각했는데
그게 아니었다. (코드 변경전에는 그것도 맞았을 것이다)
try, except를 빼서 오류 메시지를 보니
permissionError가 뜨더라.
왜지, 뭐지 하면서 헤매다가 찾아보곤 아하, 했다.
옮기기 전에 파일을 안 닫아줘서 그랬던 것.
코드를 공개적인 곳에 올리려하니 함수를 나누지 않은게 눈에 팍 띈다.
코드를 좀 더 깔끔하게 쓰는 습관을 들이려면 먼저 마음의 여유가 필요한 걸지도 모르겠다.
Author And Source
이 문제에 관하여(20220418 월요일), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@yeonwlee/20220418-월요일저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)