Knowhow/Python 2

python에서 yaml 다루기, PyYAML vs ruamel.yaml

python에서 yaml을 쓰거나 읽을 때 일반적으로 PyYAML을 사용한다. 검색하면 제일 먼저 나오고 import도 직관적이어서 애용한다. 그리고 웬만한 경우에는 PyYAML로 다 해결되기 때문에 효과적이기도 하다. pip install PyYAML ### import yaml PyYAML을 쓰다가 가끔 오류가 나는 경우가 있는데 바로 yaml 최상단에 버전(+ 주석)이 명시된 경우다. camodocal 같은 과거 c++ 기반 툴들을 쓰다보면 이렇게 저장되는 yaml 파일을 볼 수 있는데 이 파일들은 PyYAML로 못 연다. (버전 1.0 이전 같다.) 예를 들어, 다음과 같이 yaml 파일이 바로 contents로 시작하지 않고 버전이 명시돼있거나 주석이나 splitter 같은 표기가 들어가있을 경..

Knowhow/Python 2023.06.09

중복 파일 검사 후 삭제/이동/복사

데이터 처리를 하다가 수작업으로 몇몇 파일들을 걸러내면 다른 폴더에서도 대응되는 파일들을 걸러내는 것이 너무 귀찮았다. 가령 multi-camera로 이미지를 취득한 뒤에, 1번 카메라를 기준으로 이미지를 선별하고 나면 나머지 카메라 이미지들도 이에 맞추어 선별해주어야 하는데 매번 파일 이름을 기억했다가 지워주는게 번거로웠다. 이런 식의 편집은 매번 코드를 짜서 해결했었는데 꽤 빈번하게 일어나는 것 같아서 파일 이름으로 비교하는 코드를 작성해서 저장해두고자 한다. def compare_files(ref_dir, src_dir): ref_names = sorted(os.listdir(ref_dir)) src_names = sorted(os.listdir(src_dir)) ref_extension = ref..

Knowhow/Python 2023.03.16