Colab을 사용해 아래한글 문서를 받아 엑셀로 정리하는 작업을 하려고 한다. 윈도우에서 한글 문서를 다루는 패키지로 pyhwp가 있지만, Colab에서는 리눅스 OS를 사용하기 때문에 pyhwp로 아래한글 문서를 읽기가 쉽지 않았다. (exe 파일을 사용해서 그렇다고 본 것 같다.) 다행히 olefile 패키지를 사용하여 아래한글 문서를 바로 txt 문서로 변환하여 읽어 올 수 있는 방법을 찾았다. 1. olefile 패키지 설치 pip install olefile 2. 아래한글 문서 열기 import olefile path = "/content/file_name.hwp" f = olefile.OleFileIO(path) 3. 아래한글 문서 디코딩하기 기본적인 틀은 openstream 함수로 문서의 내..
사무 보조 알바를 하다보니 반복되는 작업이 많아 자동화를 시도해보게 되었다. word 문서는 python-docx 패키지를 통해 쉽게 다룰 수 있다. 간단하게 문서 내 글을 읽고, 쓰는 방법을 정리해 보았다. 1. python-docx 설치 word 문서를 다루기 위해 python-docx 패키지를 설치한다. 이 패키지는 Colab에서도 잘 돌아간다. pip install python-docx 2. word 문서 불러오기 from docx import Document path = "/content/file_name.docx" doc = Document(path) 3. Paragraphs 3.1. 문단 읽기 paragraphs 함수를 통해 word 문서 내 모든 문단을 확인할 수 있다. 하지만 표는 확인이..
백준 문제를 풀다 보면 종종 리스트 안의 행과 열을 바꿔야 하는 경우가 생긴다. 하지만 코딩테스트에서는 보통 numpy를 사용할 수 없다. 간단한 내장함수를 사용하여 전치행렬을 구현하는 방법을 알아보자. 1. zip for문을 실행할 때 zip 함수로 열의 요소들을 묶어줄 수 있다. arr = [list(temp) for temp in zip(*arr)] 2. map과 zip map 함수를 사용하면 for문을 거치는 것보다 더 빠르게 전치행렬을 만들 수 있다. arr = list(map(list,zip(*arr)))
코딩테스트 문제를 풀다 보면 문제를 입력받을 때, 이차원 배열을 받을 때가 많다. for문을 통해서 배열을 입력받을 때 빈 리스트에 한 줄씩 append 해줄 수 있지만, list comprehension을 이용하면 쉽게 한줄로 입력받을 수 있다. 개인적으로 입력을 받거나 행렬을 생성할 때 간단하게 리스트를 표현할 수 있기 때문에 특히 많이 사용하게 되는 것 같다. 표현식 + for문 형식 result = [표현식 for 변수 in 리스트] # 예시 # 1차원 배열 # 숫자를 순차적으로 입력받을 때 result = [] for i in range(n): result.append(int(input())) # list comprehension result = [int(input()) for i in rang..