업무상 데이터를 확인할 간단한 프로그램이 필요하여 직접 코드를 작성하여 확인을 진행해보려고 도전하는 중에 신기한 경험(?), 중요한 경험(?)이 된 것 같은 기분이라 대략적인 내용을 적어볼까 한다.
직접 코드를 작성해본 프로그램에 대해 간단하게 적어보자면, 1~20000까지의 파일이 있는데 몇 개의 파일이 누락된 상태이다. 이 때 누락된 파일명이 무엇인지 찾아보는 기능을 한다.
해당 코드에서 import한 lib은 os
, re
, numpy
총 3가지를 사용하였다.
File I/O를 위해 os
를 사용하고, 문자열 처리를 위해 re
를 사용한다. numpy
는 check list를 만들기 위해 사용되었다.
전체적인 구조는 위 이미지와 같다. 나름 표현한다고 그림판으로 맛깔나게 표현해보긴 했는데, 개인에 따라 이해가 될 수도 있고?.. 아닐지도 모르겠다.
numpy
를 이용해서 check_list
를 만들었는데, 예상과는 다르게 간단할거라 생각했던 코드가 말썽을 부린다. 어느 부분에서 문제가 있는지 살펴보던 도중 numpy
로 만든 check_list
의 type에서 1차 문제가 발생했다.
Python에서 일반적으로 사용하는 list와는 달리 numpy
로 생성한 array의 type은 Array of int32
였고, 이를 내가 원하는 동작을 하는 프로그램에 사용하기엔 어려운 상황이 발생한 것이다.
코드에는 문제가 없지만, numpy
에서는 재밌는 Warning을 안겨주었고, 이를 해결하는 방법으로는 numpy
로 생성된 Arrray of int32
를 바로 사용하는 것이 아니라, tolist()
함수를 사용하여 list로 변환하는 것이다.
numpy
로 생성한 check_numpy
를 tolist()
를 이용해 list type으로 변경하여도 해당 elements의 type은 변하지 않는다.
나한테 하나도 도움이 되지 않을 것이라 생각하고 아무 생각없이 만들었는데, 이러한 사소한 이유로 내가 원하는 프로그램을 만들지 못하는 경우가 발생할 수 있으니 이런 짜잘한 점까지 신경써서 확인해보고 습관으로 만들어야겠다는 생각을 갖게된 약 30분 가량의 좋은 학습이였다.