그래도 나눠둬서 도움이 됐다는 얘기를 들었다.
아래는 거기에 사용한 나약한 코드
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가 뜨더라.
왜지, 뭐지 하면서 헤매다가 찾아보곤 아하, 했다.
옮기기 전에 파일을 안 닫아줘서 그랬던 것.
코드를 공개적인 곳에 올리려하니 함수를 나누지 않은게 눈에 팍 띈다.
코드를 좀 더 깔끔하게 쓰는 습관을 들이려면 먼저 마음의 여유가 필요한 걸지도 모르겠다.