본문 바로가기

개발/파이썬31

[파이썬] 선물 분 차트 그리기(matplotlib) CYBOS PLUS/CREON PLUS API 를 이용하여 간단한 분차트를 그리는 예제 코드입니다 차트는 matplotlib 라이브러리를 이용했습니다 matplotlib 사용방법이 은근히 까다롭네요 화면 좌 상단에는 파생 종목 코드 리스트를 콤보에 넣어 종목을 선택할 수 있게 했습니다. [전체 코드] import datetime import sys import ctypes import time import numpy as np from PyQt5.QtWidgets import * import win32com.client import pandas as pd import os import matplotlib.pyplot as plt from matplotlib.backends.backend_qt5agg im.. 2018. 2. 18.
[파이썬] 지정한 폴더/확장자에서 텍스트 일괄 변경 이번 예제는 지정된 폴더의 특정 확장자를 가진 모든 파일을 열고 변경하고자 하는 텍스트를 모두 찾아 변경 합니다 (일반적인 Replace All 과 동일) 아래 예제는 d:\log 폴더에서 '.log' 확장자를 가진 파일을 대상으로 'text1' 이라는 단어를 찾고 'text2' 로 변경 합니다 (하위 폴더 포함) 예제를 통해 ASCII 파일과 UTF-8 파일 텍스트를 읽고 씁니다. UTF-8 의 경우 codecs의 도움을 받아야 합니다. 우선 ascii 방식으로 읽고 exception 이 나면 utf-8 방식으로 읽도록 했습니다 읽기 전용인 경우 쓰기 가능하도록 변경하고 기록 합니다. file::readlines() 를 이용하면 텍스트 파일을 한번에 list 에 넣어 주기 때문에 파일 읽는 노가다가 상.. 2018. 2. 6.
[파이썬] 파일 옮기기 이번에도 역시 개인적인 니드로 만든 간단 프로그램 다운로드 폴더에 mp3 파일이 생기면 요걸 감시하고 있다가 자동으로 다른 폴더로 옮기는 코드입니다. 네이버 뮤직을 크롬에서 이용중인데 플래시 비활성화로 인해 mp3 내려 받는 폴더를 매번 수동으로 음악 폴더 위치로 옮기기 구찮아서 만든 코드 ^^ import glob import os import time import shutil sorucepath = "d:\\dnld\\" destpath ='D:\\music\\naver\\' while True: fileList = glob.glob("d:\\dnld\\*.mp3") for mp3 in fileList: fname = os.path.basename(mp3) print(fname, mp3) dst_fi.. 2017. 12. 30.
[파이썬] 폴더 크기 구하기 파이썬으로 이것저것 만들고 공부 중입니다 ^^ 얼마 전에 C 드라이브 하드디스크 공간이 없길래, 좀 더 자세히 알고 싶기도 하고 공부 삼아 만들어 봤습니다 (이미 폴더 크기 구하는 프로그램들이 많음에도 ~) 프로그램은 간단합니다. 실행하면 폴더(하위 포함) 크기를 구하고 싶은 드라이브나 폴더를 입력하고 Run 해 주면 됩니다. 결과는 엑셀 파일로 만드는데요 그림처럼 폴더와 파일 2개의 sheet 를 만들고 각 sheet 에 폴더 크기와 파일 크기 역순으로 10,000 개씩 기록 합니다 (너무 많으면 엑셀 파일에 쓰다 죽기도 해서 만개로 제한) 프로그램 코드는 아래와 같습니다 import operator import sys import os from PyQt5.QtWidgets import * import.. 2017. 12. 30.
[파이썬] 리스트/딕셔너리 정렬하기 파이썬 리스트와 딕셔너리 간단한 정렬 예제입니다. (나중에 찾기 위해 기록) 리스트는 기본적으로 sort 라는 함수를 가지고 있지만 딕셔너리는 sorted 의 힘을 빌려야 합니다. data2 = sorted(data.items(), key=lambda x: x[1][0], reverse=False) sorted(1st pmt, 2nd pmt, 역순 여부) 1st 인수에 있는 항목들을 하나씩 꺼내서 두 번째 lambda 함수에 파라미터 x 로 대입하고 정렬하는 방식입니다. x[1][0] --> data.items[1][0] 이 되고 아래 예제에서 data.items[1] 은 (key: value) 의 value 에 해당하고 data.items[1][0] 은 결국 value를 이루는 투플의 첫번째 항목이 되.. 2017. 12. 11.
[파이썬] Creon Plus 를 이용해서 KOSPI200 종목 시세 가져오기 목적: CREON PLUS API를 이용해서 KOSPI200에 소속된 200 종목의 현재가 정보를 가져온다가져온 데이터를 Pandas DataFrame 에 저장하고, 엑셀로도 내 보낸다. 예제를 위해 공부가 필요한(or 필요했던) 항목들CREON PLUS API (증권 시세/주문/계좌 정보 가져오기 위해 필요)판다스(PANDAS), DATAFRAME 개인적으로는 파이썬의 Pandas/DataFrame 을 좀더 공부하고 싶어서 만든 예제입니다 아직 실시간 부분은 처리하지 못했는데 요건 담번에 추가 예정입니다 실시간 시세 받아 업데이트도 됩니다. 엑셀로 저장한 데이터 전체 코드 (실시간은 아직 미 구현 실시간도 구현됨)import sys from PyQt5.QtWidgets import * import wi.. 2017. 10. 15.
[파이썬] 안드로이드 프로젝트에서 자바 클래스 레퍼런스 카운트 구하기 요즘 파이썬으로 공부하면서 그동안 필요했던 기능들을 파이썬으로 구현중인데, 배운 지 얼마 안됐지만 파이썬 언어 자체가 정말 매력적이네요 C++ 과는 비교가 안될 정도로 코딩량도 적고 로직에 집중할 수 있어 좋은 듯. 예제 코드의 목적 안드로이드 프로젝트가 커지면서 사용하지 않는 클래스가 점점 늘어남, 다른 파일에서 호출하지 않는 클래스를 찾기 위해 만듦 1. 모든 파일에서 클래스 이름을 찾아 저장 (한 파일에서 하나의 public class 만 있다고 가정) 2. 다시 모든 파일을 단어 단위로 읽어 '1' 에서 저장한 클래스 이름이 있으면 ref count 를 증가 시킴. (단, 클래스가 선언된 파일은 ref count 에서 제외 3. 참조하는 파일 리스트도 저장 4. csv 로 저장할 수 있도록 ','.. 2017. 10. 14.
[파이썬] 폴더 명 일괄 변경 예제 예전에 찍은 사진 중 폴더의 날짜 표기를 변경할 대상들이 많아 일괄 변경하기 위해 만든 코드 (주의: 코드 참고용으로 작성하여 범용적이지 않음) 목적: 주어진 폴더 내에서 폴더 이름의 일자표기가 20031025__**** 인 폴더를 찾아 2003-10-25_**** 로 일괄 변경 코드 import os # 20031025_삼천포대교앞 --> 2003-10-25_삼천포대교앞과 폴더 이름 변경 path = "H:\\5. 사진\\" for fname in os.listdir(path) : fullpath = path + fname if os.path.isdir(fullpath) == False: continue if len(fname) < 8 : continue fpre = fname[:8] fpost = f.. 2017. 10. 11.
[파이썬] 주어진 폴더 파일/크기 비교 예제 사진과 동영상을 백업받을 새로운 하드를 장만하면서 약 10만개가 넘는 사진을 두 하드에 복사하다가, 필요해서 만든 간단한 폴더 비교 샘플입니다 (주의: 파일 자체의 내용까지 비교 해주는 좋은 사용 툴이 있지만, 바이너리 파일 비교는 너무 오래 걸려 파이썬 공부 목적으로 만든 참고용 예제임) 목적: 주어진 폴더 2개를 비교 동일한 파일(파일 이름과 크기만 비교), 한쪽에만 있는 파일, 오른쪽에만 있는 파일 리스트를 구한다 프로그램 코드 import os # 주어진 folder 2개를 look up 한 후 # 파일 이름/사이즈까지 비교 path1 = "H:\\5. 사진\\" path2 = "G:\\5. 사진\\" # key: full path value: filename, folder/file, file s.. 2017. 10. 11.
파이썬 기본 - 리스트/딕셔너리/튜플/set 기본 사용법 파이썬 문법은 C++ 과 상당히 유사합니다 특히 파이썬의 리스트와 딕셔너리는 STL 의 vector 와 map 을 상당히 많이 닮아 C++ 에 익숙하다면 익히는 데 별 어려움이 없이 적응이 가능해서 좋습니다 아래는 간단한 리스트와 딕셔너리에 대한 샘플 코드입니다 리스트는 [], 딕셔너리는 {}, 튜플은 () 로 선언한다는 것도 유의! (자세한 설명은 생략합니다 ^^) 1. 리스트 # list 테스트 def listTest(): # 초기화 codeList = ["A003540", "A005930","A066570"] size = len(codeList) print("list ->", codeList) # 추가 codeList.append("A000660") size = len(codeList) print(.. 2017. 9. 26.
파이썬 개발 환경 구축 하기 파이썬 개발 환경 구축 관련 간단하게 정리~ 아나콘다 설치 설치 주소: https://www.anaconda.com/download/ 32 비트 또는 64 비트 (증권사 API 개발한다면 32 비트 필요) 설치 위치는 기본 user/~ 밑에 설치 되는데, 개발 툴을 특정 위치에 설치를 선호한다면 다운로드 패스를 지정한다 (물론 이처럼 설정 할 경우 추후 SDK PATH 지정시 변경이 필요) 파이썬용 IDE 설치PyCharm 설치 주소: https://www.jetbrains.com/pycharm/download/Community Free 버전 선택 원하는 테마 선택(Visual Studio 가 편하다면 키보드 설정을 VS 로)아나콘다 패스 지정해 주기(아나콘다를 다른 폴더에 선택 한 경우) PYQT5 설.. 2017. 9. 25.