본문 바로가기

반응형

개발/Python

(6)
[Python] csv 파일 쓰기 TL;DR csv 파일 open 및 csv.writer 생성 writerow, writerows를 사용해 내용 작성 close를 통해 기록 종료 csv 파일 데이터를 정리할 때 csv, json, xml, txt 등 여러 다른 형식으로 정리할 수 있다. csv 파일은 여러 필드에 해당하는 데이터를 ,(콤마)로 구분한 데이터 파일 양식으로, 주로 엑셀(또는 넘버스, 한셀) 등에서 열어서 조회한다. 표로 표현할 수 있는 데이터에 대해서는 csv 파일을 사용했을 때 한눈에 확인하기 쉽다. 최근 작업하고 있는 프로젝트에서 파이썬에서 csv 파일을 쓸 일이 있어 이를 정리하려 한다. 1. 파일 생성 및 writer 생성 csv 파일을 쓰기 위해서는 기본 내장 모듈인 csv를 import 해주어야 한다. 그러고 나..
[Python] XML 파싱하기(with Pascal VOC) Pascal VOC Pascal VOC 방식은 Object detection을 위한 데이터 셋인 Pascal VOC dataset의 구조를 의미한다. 이 구조는 하나의 입력 이미지에 대한 정보를 xml파일로 표시한다. [그림 1]과 같이 2개의 손 끝을 탐지해야 하는 입력 이미지가 존재한다고 했을 때, 이에 대한 데이터의 정보는 다음과 같은 xml 파일로 표시된다. case1-5_jpg.rf.654eac65f62fddc076e25a286ae8e46e.jpg case1-5_jpg.rf.654eac65f62fddc076e25a286ae8e46e.jpg 270 187 3 0 Pascal VOC는 xml 파일에 이처럼 파일명과 경로, 이미지의 크기와 같은 정보 뿐만 아니라, object detection에 필요..
[Python] 아스테리스크(*) 연산자 알아보기 아스테리스크(*)는 다양한 용도로 사용된다. 그 중에서도 가장 많이 알려진 것인 C언어에서의 포인터로써 사용되는 것이나 곱셈 연산자로써 사용되는 것일 것이다. 파이썬(Python)에서도 * 연산자가 다양한 용도로 사용된다. 다른 언어들과는 다른 기능들을 알게 되어 정리해보려 한다. 1. 곱셈 연산자 a, b = 5, 3 a * b # 15 가장 많이 익숙한 방법이다. 두 수의 곱셈 연산을 할 때 사용된다. 2. 언팩(Unpacking) 언팩(Unpacking), 단어의 뜻 대로 쌓여있는 것을 푸는 용도로도 사용된다. 무슨 말인지는 예시를 통해 확인할 수 있다. 배열 a = [1, 2, 3, 4, 5]의 원소를 한 줄에 출력하는 코드를 통해 * 연산자의 언팩에 대해서 살펴본다. 언팩을 사용하지 않고 출력하..
[Python] '-u'로 보기 좋게 인자(argument) 정리하기 python을 터미널에서 실행할 때, 여러 옵션과 해당하는 인자를 주어 실행할 수 있다는 사실을 최근에 논문 코드 작업을 하며 알게 되었다. 간단한 코드를 실행하는데는 이렇게 많은 옵션을 필요로 하지는 않는다. 하지만 제공되는 옵션을 사용함으로써, 보다 더 유연한 python 코드 실행이 가능해진다. 오늘 포스팅에서는 이렇게 많은 python의 실행 옵션 중 중요한 내용은 아니지만 코드 작성에 편의성을 줄 수 있는 옵션이라 생각하는 -u 옵션에 대해서 소개하고자 한다. -u 옵션의 내용을 확인해보면 바이너리 입출력의 stdout과 stderr를 버퍼에 올리지 않는다. stdin만을 항상 버퍼에 올린다. 텍스트 입출력은 줄 바꿈으로 버퍼에 올라간다.정도로 해석할 수 있다. stdout, stderr이 버퍼..
[Python] tqdm으로 진행현황 한 눈에 보기 반복문은 조건문과 더불어 프로그래밍을 배울 때 초반에 배우는 내용이자 가장 많이 사용하는 구문이라고 생각한다. 반복문을 수행하다 보면 어느 정도 작업이 진행되었는지를 확인하고 싶을 때가 있다. 특히, 반복 횟수가 많으면 많을 수록 실행에 걸리는 시간이 오래 걸리기 때문에 작업 현황을 파악하는 것은 꽤나 중요하다. 개인적으로 작업 진행 현황을 찾아보기 위해 print문이나 console.log과 같은 출력문을 통해 실제로 눈으로 볼 수 있는 방법을 많이 사용해왔다. 이는 실제 프로그램의 동작과 필요없는 구문이 추가되어 코드의 가시성에 좋은 영향을 주지 않고 실제 원하는 대로 예쁘게 출력하기 어렵다. tqdm은 파이썬에서 반복문에서 이루어지는 과정을 쉽게 볼 수 있도록 해준다. tqdm/tqdm A Fast..
[Python] argparse 기본 사용법(feat. 이미지 처리 프로그램) "argparse, python 프로그램의 자유도의 날개를 달아줘요!" 최근 몇 달 간 python으로 이미지를 처리하는 코드를 짤 일이 많았다. 그 때마다, 매 번 코드에 있는 이미지 경로 이름을 바꿔가며 작성한 코드를 실행했었다. 어느 정도 시행 착오를 겪어가며 작성한 코드였기 때문에 이미지 경로만 다르게 넣어주면 되는데, 이 경로명을 일일히 IDE(visual studio code를 사용하고 있다.)를 켜서 수정하고 다시 실행하고 하는 것이 너무너무 귀찮았다. #IMAGE_DIR = './Desktop/image1/' #IMAGE_DIR = './Desktop/image2/' #IMAGE_DIR = './Desktop/image3/' #IMAGE_DIR = './Desktop/image4/' #IM..