개발이나 코딩 주석을 넣을 때 쓰기도 하고 티스토리나 github 등에서도 호환가능한 마크다운에 대한 설명내용입니다. 마크다운은 html의 기능을 모두 대체할 수는 없지만 html을 몰라도 간단하고 손쉽게 문서를 쓸 수 있는 점에서 큰 장점을 가지고 있습니다. html의 보조적인 역할을 할 수 있어서 html을 안다면 큰 시너지를 주기도 합니다. 티스토리 블로그에 포스팅하려고 했으나 티스토리 내에도 마크다운 호환이 가능해 제가 쓰고 있는 스킨과 겹쳐 제대로 표현이 안되는 문제가 발생했습니다. 그래서 마크다운으로만 운영되는 github 블로그에 옮겨 놓았습니다. 왠만하면 외부링크를 안 걸려고 노력하고 있는데 어쩔 수가 없네요 링크를 걸어둘테니 내용이 필요하신 분은 아래 링크로 들어오면 해당 설명을 볼 수 ..
공공데이터 같은 api를 통해 데이터를 가져온 후 csv 를 저장했을 때 한글이 깨지는 상황이 발생합니다. 이건 컴퓨터 환경에 따라 약간씩 달라질 수도 있어서 윈도우 기준으로 설명하겠습니다. 아마 다른데는 잘 될 거에요 ㅎㅎ 파이썬에서 csv를 저장하면 인코딩에 대한 얘기를 하지 않으면 기본적으로 utf-8로 인식하고 저장합니다. 즉, 디폴트 값이 utf-8입니다. 그런데 utf-8로 csv를 저장하면 한글이 깨지는 문제가 발생합니다. 왜냐하면 특히 공공데이터인 경우는 cp949나 euc-kr 방식으로 인코딩이 되어 있기 때문입니다. 그래서 공공데이터에서 csv를 받아와 파이썬으로 불러들이면 당연히 한글이 깨지게 됩니다. 이를 해결하기 위해서는 cp949나 euc-kr로 바꿔주어야 합니다. 거꾸로 파이썬..
리스트로 된 원소들을 모두 문자열로 바꾸는 방법입니다. for문으로 할 수도 있지만 파이썬에 내장되어있는 join 함수를 사용하면 좀 더 편리하게 리스트 원소를 하나의 문자열로 변환할 수 있습니다. 리스트 원소가 모두 문자열일 때 리스트 내용을 문자열로 변환하기 위해서는 작은 따옴표.join(변환할 리스트) 로 변환할 리스트를 join함수 안에 넣습니다. 리스트에 있는 걸 나열하는 방식이어서 그냥 하면 띄어쓰기가 안 되서 출력됩니다. example_list = ['john','cash','eric'] convert_string = ''.join(example_list) print(convert_string) 띄어쓰기를 하려면 작은 따옴표를 한칸 띄웁니다. example_list = ['john','cas..
pip은 파이썬을 설치하면 내장되어 있기 때문에 따로 설치가 필요없지만 업그레이드를 하거나 재설치를 해야하는 경우 쓰는 방법입니다. 제가 소개하는 건 윈도우 버전이고 맥이나 리눅스는 그에 맞게 명령어를 써주면 됩니다. get-pip.py 파일 받기 cmd를 켠후 다음을 입력합니다. curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py 그러면 현재 지정된 폴더에 get-pip.py이 생깁니다. pip 설치 pip을 설치하기 위해 다음을 씁니다. python get-pip.py 설치가 완료 되었습니다. no such file or dictory python get-pip.py를 했는데 no such file or dictory라며 안 되는 경우가 있습니다. 일반..
제너레이터는 iterator를 생성하는 함수인데 메모리 절약을 하거나 임시적으로 데이터 저장을 할 때 씁니다. 예를 들면, 게임을 할 때 잠시 일시정지를 하면 게임이 멈추는데 게임의 상황이 변하지 말아야 합니다. 그래서 게임이 다시 재개가 되면 기존에 했던 상태를 이어서 할 수 있게 됩니다. 이럴 때 필요한 것이 제너레이터 입니다. 제너레이터는 iterator를 생성하는 함수인데 yield를 쓰는 경우를 얘기합니다. 제너레이터로 설정을 하면 iterator가 순서대로 나오되 순서의 다음값은 필요에 따라 계산됩니다. 즉, 호출을 안 하면 멈춰서 대기하는 상태를 유지합니다. 보통 무한한 루프를 생성할 때 리스트나 딕셔너리는 메모리에 임시저장되어 불러오지만 제너레이터는 소비하는 형태로 되어 있어서 메모리 부담..
앞서 포스팅한 패킹과 언패킹의 연장선입니다. 언패킹을 할때 나머지 변수는 *rest 로 묶을 수 있었는데요. 제가 변수로 정하고 싶지 않은 건 큰 관심이 없어서 변수지정을 안 주는데 갯수가 정해지지 않습니다. 갯수가 안 정해지지만 묶을 수 있는것과 마찬가지로 함수의 파라미터에서 갯수를 정할 수 없는 경우가 있습니다. 이런 맥락으로 파라미터의 갯수를 정할 수 없는 경우 *args, **kwargs로 표시할 수 있습니다. 별 기호(*)가 중요한것이지 args는 바꿀 수 있습니다. 관용상 이렇게 쓰면 모두가 알 수 있기 때문에 쓰는 것뿐입니다. *args args는 arguments의 줄임말로 인수들이라는 뜻입니다. 단어의 뜻처럼 인수들을 넣으면 되는 것입니다. 예제로 패킹과 언패킹에서 보인 정가 구하는 함수..
파이썬에서의 패킹 언패킹을 설명하겠습니다. 일상생활에서 패킹을 포장한다는 의미로 많이 쓰고 있습니다. 포장은 내용물을 보호하고자 내용물을 싸는 행위입니다. 즉, 패킹은 내용물을 보호하려는 목적을 가지고 있습니다. 그래서 파일 보호를 위해 복호화하여 파일분석을 어렵게 하는 경우를 패킹이라고 불리기도 합니다. 그런데 파이썬에서는 싸는 행위에 더 초점을 맞춘 듯합니다. 파일 보호의 역할보다는 감싸는 역할로써 사용하고 있습니다. 패킹 파이썬에서의 패킹이란 여러 개의 값을 한 변수에 묶어 대입하는 것을 뜻합니다. 예를 들어 1,2,3,4,5 를 하나의 변수로 묶는다면 다음과 같이 할 수 있습니다. num = 1,2,3,4,5 print를 해보면 튜플로 출력을 합니다. print(num) 언패킹 반대로 언패킹은 묶..
리스트가 튜플로 구성되어 있는 경우 정렬하는 방법입니다. 이전 포스팅에서 딕셔너리 정렬하는 방법을 설명했었는데요. 그 방법과 유사합니다. 기본 골자는 인덱스를 이용하는 방법입니다. 메쏘드의 차이만 있을뿐입니다. sorted() 이용 sorted 메쏘드를 이용하는 방법입니다. 다른 리스트로 재정의해야 할때 주로 씁니다. tuple_list = [('A','1','20210717'),('B','2','20210706')] sort_list = sorted(tuple_list, key=lambda x:x[2]) sort_list x[i] 에서 i에 정렬기준이 되는 인덱스 번호를 넣어서 만듭니다. sort() 이용 리스트 재정의 없이 단번에 정렬하는 방법입니다. tuple_list = [('A','1','202..
작업 스케쥴러에 작업을 추가시키면 이름 변경이 불가합니다. 아래 그림처럼 이름 부분이 하얀색이 아닙니다. 그럼에도 이름을 바꾸는 방법입니다. 1. 이름을 바꾸고자 하는 작업을 선택하고 마우스 오른쪽 클릭을 해서 내보내기를 선택합니다. 또는 오른쪽 옵션 창에서 내보내기... 을 선택합니다. 2. 내보내기를 누르면 저장하는 창이 나오는데 자신이 원하는 경로에 저장합니다. 3. 작업 가져오기..를 선택합니다. 4. 저장했던 파일을 가져오면 새 작업 만들기.. 창이 뜹니다. 이제 이름을 바꾸시면 됩니다. 가져왔던 작업이기 때문에 트리거나 동작 설정은 기존의 작업과 동일하게 설정되어 있어서 이름만 바꾸려 한다면 변경할 건 없고 이름을 바꾼후 확인을 누릅니다. 5. 기존에 있던 작업을 지웁니다. 관련 포스팅 [Py..
cmd에서 pip 패키지 설치와 버전 업그레이드 방법입니다. cmd를 관리자 모드로 실행시켜서 수행합니다. 설치 설치는 cmd에서 다음을 입력합니다. pip install "패키지이름" 버전을 지정하고 싶다면 == "패키지버전" 을 추가합니다. pip install "패키지이름"=="패키지버전" 제거 pip uninstall "패키지이름" 업그레이드 하나씩 지정해서 업그레이드를 합니다. pip install "패키지이름" --upgrade pip 자체 업그레이드 pip도 업그레이드가 필요한데 cmd를 관리자 모드로 하지 않고 실행하면 일부 설치를 안한 상태로 설치를 완료합니다. 그러면 업그레이드도 안되고 install을 다시해도 안 먹히게 되어서 pip 을 제거한 후 다시 설치를 해야합니다. 관리자로 c..
Comprehension는 iterable한 오브젝트를 생성하는 방법으로 list, dict, set 같은 오브젝트에 원소를 담을 때 주로 사용합니다. for문을 안에 넣어서 수행하기 때문에 짧은 코딩으로 만들 수 있습니다. List comprehension 리스트를 생성하기 위한 comprehension 입니다. 간단하게 구성하면 아래와 같이 할 수 있습니다. sqaure = [x**2 for x in range(10)] sqaure 조건문도 넣을 수 있습니다. sqaure = [x**2 for x in range(10) if x%2==0] sqaure Set comprehension set은 리스트와 다르게 동일원소가 안 나오는 경우입니다. 그것 말고는 List comprehension과 동일합니다...
주식에서 보조지표나 이평선같은 기술적분석에 쓰이는 것을 계산해주는 모듈인 TA-lib를 설치할 때 파이썬 버전과 64비트인지 32비트인지를 알고 있는게 중요합니다.무작정 pip install ta_lib 를 하면 거부를 해서 설치를 안 합니다.이건 Ta-lib의 최신버전에 맞는 파이썬과 비트가 달라서 일어나는 현상인데요.이런 이유 때문에 각각 버전에 맞는 설치파일을 .whl 파일로 제공하고 있습니다.https://github.com/cgohlke/talib-build/releases/tag/v0.4.28 Release v0.4.28 · cgohlke/talib-build github.com TA_lib 설치하기TA_lib를 설치는 간단합니다.요약해서 얘기하면 필요한 모듈을 파이썬 버전에 맞는 .whl..
datetime 모듈을 이용한 시간 날짜 구하는 방법입니다. 현재시간,날짜 구하기 현재시간 구하는 방법입니다. 연도부터 마이크로초까지 나옵니다. 메쏘드는 today() 를 쓰거나 now() 를 쓰면 됩니다. 둘다 같은 결과가 나옵니다. from datetime import datetime today = datetime.today() #현재 시간 now = datetime.now() #현재 시간 print(today) print(now) 마이크로초에서 시간 차이가 있었지만 아무튼 둘다 같은 결과가 나옵니다. 현재날짜에서 추출하기(심플) 현재 날짜에서 연이나 일, 시간 추출하는 간단한 메쏘드입니다. 정말 간단하게 시간 추출할 때 유용합니다. print(now.year) #연 print(now.month) #..
파이썬 편집기인 파이참 설치방법입니다. 파이참 설치파일 다운로드 아래 링크에서 설치파일을 받습니다. Professional은 유료버전이고 Community는 무료버전입니다. 유료버전을 하면 파이썬과 HTML, JS,SQL 을 같이 쓸 수 있습니다. https://www.jetbrains.com/ko-kr/pycharm/download/#section=windows 다운로드 PyCharm: JetBrains가 만든 전문 개발자용 Python IDE www.jetbrains.com 설치 설치파일을 실행하면 아래 그림처럼 뜹니다. Next를 눌러줍니다. 설치할 폴더를 정해줍니다. 꼭 C 드라이브일 필요는 없습니다. Create Desktop Shortcut : 바탕화면에 바로가기를 만듭니다. Update co..
파이썬이 32bit인지 64bit 인지 확인하는 방법입니다. cmd나 파워셸에서는 python에 들어가면 python의 정보를 알 수 있어서 64인지 32인지 나오기는 합니다. python을 요청하면 그림의 빨간 사각형처럼 64bit 임을 알려줍니다. 그런데 이미 파이썬에 들어가 있는 상태에서 확인하고 싶다면 platform 모듈을 사용합니다. 다음과 같은 코드를 써보면 바로 현재 파이썬이 몇 bit 인지 알 수 있습니다. import platform print(platform.artitecture()) 64bit인 걸 확인할 수 있습니다. 쥬피터에서는 print를 안 써도 바로 출력이 됩니다.