:: python 26

python :: markdown to HTML 변환하기 (+테이블 테두리 설정)

마크다운 언어로 작성한 스크립트를 HTML 로 변환하려면 'markdown' 라이브러리를 사용하면 된다. 1. markdown 라이브러리 설치 pip install markdown 다음과 같은 markdown text가 있다고 가정해보자. # Title 토람코 ## Info | Name | Type | | -------- | -------- | | 토람코 | 블로그 | 위 내용을 HTML로 변환하면 어떤 형태가 될지 간단히 설명하자면, 우선 마크다운 문법에서 '#' 는 header, 즉 제목/부제목을 작성할 때 사용한다. '#'는 h1 태그, '##'는 h2 태그로 # 개수가 적을 수록 글씨 사이즈가 커진다고 보면 된다. ## Info 아래에 있는 내용은 테이블인데 세로 구분선을 '|'로, 가로 구분선을..

:: python 2023.05.08

python :: yaml 파일 읽기, yaml 데이터 json data로 변환하기

다음과 같은 내용의 yaml 파일이 있다. jobs: - developer - influencer name: toramko 위 파일의 내용을 읽어서 json data 로 변환하려면 다음과 같이 yaml 라이브러리의 'safe_load' 를 사용하면 된다. import yaml import json yaml_path = "" json_data = {} with open(yaml_path, 'r', encoding='utf-8') as file: yaml_data = yaml.safe_load(file) json_dic = json.dumps(yaml_data) json_data = json.loads(json_dic) print(json_data) # {'jobs': ['developer', 'influe..

:: python 2023.04.26

python :: 파이썬 딕셔너리 복사(copy) 후 수정사항 반영되지 않도록 하기(deepcopy)

다음과 같이 정의된 A 딕셔너리를 복사하여 B 딕셔너리를 만들었다. A = {'name': 'toram', 'lotto': [1, 2, 3, 4, 5, 6]} B = {k:v for k, v in A.items()} 이 때, 새로 생성한 B['lotto'] 의 내용을 수정했더니 기존 딕셔너리(A)에도 동일하게 반영되었다. B['lotto'][2] = 20 print(B['lotto']) # [1, 2, 20, 4, 5, 6] print(A['lotto']) # [1, 2, 20, 4, 5, 6] 아예 새로 정의하여 별개의 딕셔너리라고 생각했는데, 수정사항이 반영된 걸 보니 당황했다 @.@ 구글링을 통해 여러 가지 방법을 시도해봤지만 모두 실패했다. # 1차시도 B = A # 2차시도 B = A.copy(..

:: python 2022.11.21

python :: 파이썬 1, 2, 3차원 배열(list) 선언 및 초기화(with java)

1. 1차원 배열 선언 java 에서 배열을 선언할 경우 다음과 같이 선언한다. int[] a = new int[10] // size=10 정수 배열 String[] b = new String[5] // size=5 문자열 배열 ... 이와 같이 java 에서는 어떤 type 의 데이터 배열을 생성할 것인지 미리 지정한다. python 에서는 데이터 타입을 지정하지 않아도 된다. a = [] 이렇게 빈 리스트를 선언해두고 다양한 타입의 값을 넣을 수 있다. 위와 같이 정수와 문자열을 같은 list 에 때려 넣어도 문제 없이 잘 들어간다! 2. 1차원 배열 초기화 java 의 경우 배열을 선언할 때 크기를 지정한다. int[] a = new int[10] 여기서 a는 길이가 10인 일차원 정수 배열을 뜻하..

:: python 2022.08.23

python :: duckling, jpype 에러 해결 (TypeError: Parser must be a string or character stream, not java.lang.String)

Duckling 라이브러리를 사용하여 텍스트를 처리하던 중 다음과 같은 에러가 발생했다. TypeError: Parser must be a string or character stream, not java.lang.String 왜 에러 메시지에 java.lang.String 이 있는가 하면, Duckling 이 java 기반의 라이브러리라서 그렇다. 자바기반의 라이브러리를 파이썬 프레임워크에서 사용하기 위해 'JPype' 라는 패키지가 필요한데, 위 에러는 바로 이 JPype 와 관련된 에러다. 좀 더 정확히는, JPype 버전이 맞지 않아 발생하는 에러다. 해결법은 간단하다. jpype 를 0.8 미만의 버전으로 다운그레이드 시켜주면 된다. pip install Jpype1==0.7.5 예를 들어 위와..

:: python 2022.04.08

python :: 파이썬 테스트(unit test) 코드 작성 라이브러리 pytest 와 fixture

코드 작성 후 코드가 정상적으로 동작하는지 확인하기 위해 테스트 파일을 작성한다. 파이썬에서는 테스트 파일 작성 시 pytest 를 많이 사용하는데, 이 pytest 는 fixture 라는 유용한 기능을 제공한다. fixture 는 선언한 함수를 테스트 함수에서 인자로 받아 사용할 수 있게 해주는 기능이다. 1) 테스트 함수 A를 작성하고 2) A에 fixture 를 선언하면, 3) 다른 테스트 함수에서 A의 결과를 받아와 사용할 수 있다. 이런 특징은 테스트 함수 작성 시 아주 유용한데, fixture 가 어떻게 활용되는지 알아보자. 1. fixture 사용법 먼저 fixture 를 사용하는 방법은 간단하다. pytest 를 import 한 후, 대상 함수 위에 다음과 같이 정의하면 된다. import..

:: python 2022.02.03

python :: 파이썬 텍스트 파일 문자열에서 \ufeff 제거하는 방법 (BOM 이란?)

텍스트 파일을 읽어오던 중 아래 에러가 났다. SyntaxError: invalid character in identifier 파일 내용을 찍어보니 '\ufeff' 가 포함되어 있었다. \ufeff 는 문서의 맨 앞에 추가되어 현재 파일의 인코딩 정보를 알려주는 역할을 한다. 이 부분을 BOM(Byte Order Mark) 이라고 한다. 텍스트를 읽는 프로그램은 이 BOM을 참고하여 이어지는 데이터를 어떤 방식으로 읽을지 결정하게 된다. 파일 open 시 encoding 방식 변경하기 BOM 인식 오류 문제를 해결하려면 파일을 읽을 때 'utf-8' → 'utf-8-sig' 로 encoding 옵션을 변경해주면 된다. # 기존 (utf-8) with open(file_path, 'r', encoding=..

:: python 2022.01.19

python :: 파이썬 open 함수로 텍스트 파일 읽기, 쓰기

파이썬으로 텍스트 파일을 읽고 쓰기 위해서 open() 내장 함수를 사용할 수 있다. 1. 파일 읽기 file_path = "full file path" with open(file_path, "r", encoding="utf-8") as f: lines = f.readlines() for line in lines: print(line) # 파일 내용 한 줄씩 출력 .readlines() 를 하면 데이터를 한 줄씩 담은 배열을, .read() 를 하면 전체 데이터를 통째로 담은 문자열을 리턴한다. 2. 파일 쓰기 with open(file_path, "w", encoding="utf-8") as f: f.write("toramko\n") f.write("blog") mode 가 "r" 인 경우 읽기, "w..

:: python 2022.01.12

python :: PyYAML yaml.load 시 ReaderError: unacceptable character: special characters are not allowed 오류 해결

파이썬으로 yaml 파일을 읽기 위해 PyYAML 라이브러리를 사용, yaml.load 로 파일을 불러오려다가 다음 에러가 났다. File "/usr/local/lib/python3.6/site-packages/yaml/reader.py", line 89, in peek return self.buffer[self.pointer+index] IndexError: string index out of range File "/usr/local/lib/python3.6/site-packages/yaml/reader.py", line 144, in check_printable 'unicode', "special characters are not allowed") yaml.reader.ReaderError: unac..

:: python 2022.01.04

python :: 파이썬 웹페이지 url 에서 json 데이터 가져오기 (구글 애드센스 sellers.json 에서 자신의 사용자 정보 찾기)

http://{도메인 주소}/{파일명}.json 위와 같은 형태의 주소로 웹에 등록된 json 파일을 읽어오고자 할 때, 파이썬 스크립트를 작성하여 json data 를 가져올 수 있다. 1. requests 라이브러리로 웹페이지 json 데이터 불러오기 import requests url = "{웹페이지 json url 전체 경로}" data = requests.get(url).json() requests 를 사용하여 이렇게 간단하게 불러올 수 있다. 2. Google Adsense 'sellers.json' 에서 자신의 사용자 정보 찾기 구글 애드센스 허가를 받은 후 광고를 게재하면 이렇게 Google sellers.json 파일에 판매자 정보를 게시하라는 안내 문구가 뜬다. 1) sellers.js..

:: python 2022.01.02
300x250