본문 바로가기

programming language/Python55

Python Home folder 접근 리눅스 사용자들은 홈 폴더에 대한 개념이 명확 하지만 윈도우 사용자들은 홈 폴더에 대한 개념이 명확하지 않은 경우가 많이 있습니다. 요즘 나오는 컴퓨터 운영체제들은 멀티유저용인 만큼 사용자에 따른 홈 폴더 사용은 필수 입니다. Python 사용시 현재 사용자의 home 폴더에 접근 하는 방법에 대해 소개하려 합니다. 현재 제 컴퓨터는 Windows 7 64비트 입니다. 그리고 계정은 Administrator 입니다. 현재 사용자의 홈 폴더를 확인 하는 방법은 CMD 창에서 다음과 같이 echo %userprofile% 이라고 타이핑 하면 나옵니다. 컴퓨터가 달라지면 달라지면 당연히 홈 폴더 역시 바뀌게 될 겁니다. 따라서 홈 폴더에 대한 접근은 하드 코딩이 아닌 다음과 같은 코딩을 통해 접근 하는 게 좋.. 2015. 10. 11.
Python 을 이용한 Visio 그리기 아시는 바와 같이 Microsoft Office 제품군에서는 VBA를 활용하여 자동화가 가능 합니다. http://iamaman.tistory.com/592 http://iamaman.tistory.com/1643 그런데 Visual Basic뿐만 아니라 다른 언어를 활용해서도 Office 자동화가 가능 합니다. 오늘은 Python 을 이용한 visio 그리기를 해보려 합니다. 구글을 좀 뒤져 보니 다음과 같이 좋은 예가 있더군요. 저는 현재 Windows 7 64비트를 사용 중인데~ Python 은 32비트를 사용 중입니다. 몇가지 package 들을 사용하기 위해 아래에서도 소개했던 Anaconda 를 사용하는데요~ Anaconda 를 설치하니 win32com 모듈을 그냥 사용 할 수 있더군요.htt.. 2015. 10. 9.
Python Degree to Clock 변환 오늘은 파이썬을 활용하여 각도를 clock 값으로 변환하는 예제에 대해 알아보려 합니다. MATLAB Stateflow 에서 junction 을 연결 할 때 junction 의 연결 지점을 clock 값으로 설정 합니다. 이러한 경우 각도에 대한 clock 값을 알 필요가 있습니다. 아래는 각도를 clock 값으로 변환해 주는 코드입니다. Anaconda 를 설치해서 사용 중이라 numpy 나 matplotlib 은 설치가 되어 있는 상태입니다. import matplotlib.pyplot as plt import numpy as np def degreeToClock(degV): return str((-(degV / 360.0 * 12.0) + 3) % 12) if __name__ == '__main__.. 2015. 9. 13.
파이썬으로 윈도우 아웃룩 메일 보내기 파이썬을 활용하여 메일을 보내는 몇 가지 방법 중에 오늘은 로컬 컴퓨터의 아웃룩을 사용하여 보내는 방법에 대해 소개하려 합니다. 아웃룩을 사용하기 위해 win32com.client 을 사용합니다. 코드는 다음과 같습니다. 한글을 사용하기 위해 맨 위에 아래와 같이 cp949 를 적어 줬습니다. 아래 코드를 사용하면 현재의 아웃룩 계정에서 제목 메일의 내용대로 메일이 날라갑니다. 수신자(Ex> abc@naver.com)는 아래 코드의 mail_Address 부분에 넣어 주면 됩니다. # -*- coding: cp949 -*- import win32com.client olMailItem = 0x0 obj = win32com.client.Dispatch("Outlook.Application") newMail .. 2015. 8. 26.
Python에서 Autohotkey 사용하기 개인적으로 자동화에 관심이 많이 있습니다. 회사에서 주로 윈도우를 사용하는 관계로 Autohotkey 를 많이 사용하는 편인데~ 때에 따라서는 python 을 사용할 때도 많이 있습니다. 그래서 python 에서 autohotkey 를 사용할 수 있는 방법은 없을까 해서 찾아보니 아래와 같이 pyahk 라는 파이썬 모듈이 있더군요. https://pyahk.readthedocs.org/en/latest/ 아시는 분도 계시겠지만 Autohotkey 는 Autohotkey_L, Autohotkey_H 와 같은 다양한 버전이 있습니다. 이중 Autohotkey_H 에는 Autohotkey.dll 이 있어서 다양한 프로그램들에서 Autohotkey 를 사용할 수 있도록 해 줍니다. 위에서 소개한 pyahk 역시.. 2015. 8. 6.
chardet 을 활용한 텍스트 파일 encoding 확인 텍스트 파일을 사용하다 보면 encoding 이 문제가 되는 경우가 종종 있습니다. 이런 경우에는 encoding 을 변경하여 해결 하곤 하는데~ notepad++ 와 같은 에디터의 기능을 활용 하거나~ 아니면 iconv 와 같은 명령어를 사용하여 encoding 을 변경하곤 하는데요~ iconv 와 같은 명령어를 활용하더라도 현재 텍스트 파일의 encoding 방식을 확인 해야 합니다. encoding을 확인 하기 위해 일일이 에디터에서 파일을 여는 것도 귀찮아서 찾아보니~ chardet 라는 python 모듈을 있더군요. https://github.com/chardet/chardet 위 주소에서 확인 할 수 있는 바와 같이 아래 타입들을 detect 할 수 있다고 합니다. ASCII, UTF-8, U.. 2015. 5. 8.
Python 실행 파일 만들기 cx_Freeze Python 으로 만든 모듈을 실행 파일로 만들기 위해서 기존에는 py2exe, py2app 와 같은 툴을 사용했었는데요. 최근에 cx_Freeze 라는 툴도 있다는 걸 알게됐습니다. cx_Freeze 는 cross platform 툴인데요~ 요즘 주로 사용하는 윈도우 7 64 비트에서도 정상적으로 동작하더군요. 일단 설치는 pip 가 설치되어 있다면 다음과 같이 하면 설치되더군요. pip install cx_Freeze pip 가 설치되어 있지 않은 분들은 아래 글 참조하여 설치하시기 바랍니다. http://iamaman.tistory.com/984http://iamaman.tistory.com/m/post/997 아래는 다른 블로그에서 봤던 sqrt.py 파일인데요~ 간단하게 sqrt() 값을 계산해.. 2015. 1. 10.
Python GraphViz 모듈 오늘은 Python Graphviz 모듈 사용법에 대해 간단히 알아보겠습니다. Doxygen 을 사용해 본 분들은 아시겠지만 GraphViz 는 스크립트로 다이어그램 등을 그릴 수 있는 툴 입니다. 규격화된 다양한 그래프들을 스크립트로 그릴 수 있으니 노가다를 안 해도 돼서 굉장히 편리하더군요. 아무튼 이 GraphViz 를 python 을 통해서 사용하는 방법이 있더군요. 바로 GraphViz 모듈을 사용하는 건데요~ 아래 주소에 그 예나 설치 방법 등이 나와 있더군요. https://pypi.python.org/pypi/graphviz pip 를 설치하신 분들은 그냥 간단하게 커맨드 창 또는 쉘에서 pip install GraphViz 라고 타이핑 하면 설치가 됩니다. Pip 설치 안되신 분들은 아래.. 2014. 12. 28.
윈도우용 Python 모듈 모음 요즘 파이썬을 주로 사용하면서 다양한 모듈들을 찾는 재미에 푹 빠졌는데요~ 윈도우를 주로 사용하다 보니 pip 로 인스톨이 안되는 경우가 종종 있더군요. 이런 경우에는 버츄얼 박스에서 리눅스를 설치해서 사용해도 되긴 하는데~ 찾아보니 아래 주소에 다양한 윈도우용 파이썬 모듈들이 있더군요. http://www.lfd.uci.edu/~gohlke/pythonlibs/ 위 주소에서 제공하는 모듈들은 다음과 같습니다. pycosat, virtualenv, pip, setuptools, requests, libsvm, liblinear, cytoolz, dynd, gevent, bokeh, blaze, pygit2, numba, llvmlite, iris, pillow, mercurial, netcdf4, rpy.. 2014. 12. 27.
Python C/C++ 주석 지우기 C/C++ 코드를 버전에 따라 다른 형식으로 작성해야 할 경우가 종종 있습니다. 예를 들어 어떤 경우에는 주석을 다 지우고 전달해야 하는 경우가 있는데~ 이런 경우를 위해 파이썬으로 C/C++ 주석 지우는 코드를 만들어 봤습니다. 아래 코드에서 workingDir = "D:\TestFolder" 부분을 코드가 들어있는 최상위 폴더로 맞춰 주면 *.c, *.h 파일의 모든 주석을 지워줍니다. C++ 코드 라면 AllFileList 부분에서 *.CPP 와 같은 확장자를 추가해 주면 됩니다. 2014. 12. 25.
Python 을 사용한 MS Word Generation 아래 포스팅에서 Perl 과 Autohotkey 를 사용한 Ms Word 자동화에 대해 소개한 적이 있는데요. http://iamaman.tistory.com/335 http://iamaman.tistory.com/458 오늘은 요즘 제가 종종 사용하는 python 을 사용한 ms word 자동화에 대해 간단히 소개하려 합니다. 뭐 다른 사람에게 소개한다는 측면보다는 제가 기억하기 위한 용도로 적어 놓는거니 그리 자세하지는 않습니다. 일단 python 에서 ms word 문서를 만들기 위해서는 아래 주소에서 pywin32 모듈을 설치해야 합니다. http://sourceforge.net/projects/pywin32/files/pywin32/ 다음으로 아래 주소의 예제들을 참조하여~ http://www... 2014. 12. 22.
Python Cartesian Product 이전 포스팅에서 C++, MATLAB 을 사용하여 Cartesian Product 를 구하는 방법에 대해 알아본 적이 있습니다. 2013/08/18 - [programming language/MATLAB] - MATLAB 모든 경우의 수 뽑기 Cartesian Product 2014/03/01 - [programming language/C/C++] - C++ Cartesian Product 2013/08/18 - [programming language/powershell] - Powershell 경우의 수 조합 다 구하기(Cartesian Product) 이번에는 python 에서 Cartesian Product 를 구하는 방법에 대해 확인해 보니 이전의 방법들 보다 훨씬 더 쉽더군요. 아래 주소에 그 .. 2014. 12. 5.
Python Computer Algebra System(CAS) package sympy 최근에 Python을 적극적으로 사용해 보면서 Python의 다양한 Package 들을 찾는 재미에 푹 빠져 있습니다. 이전 포스팅에서 Pyzo 에 대해 소개하면서 sympy 라는 package 가 들어있다고 얘기를 했었는데 sympy 라는 package 는 Computer Algebra System(CAS) package 입니다. 2014/12/03 - [programming language/Python] - Python Pyzo, IEP Computer Algebra System (CAS) 란 우리가 흔히 알고 있는 Mathematica, MATLAB, SAGE 나 아래 포스팅에서 소개했던 MAXIMA, Geogebra 등에 들어 있는 기능입니다. 2014/08/28 - [수학] - MAXIMA CA.. 2014. 12. 3.
Python Pyzo, IEP 다양한 Python package 들 중에 Pyzo 라는 것을 발견 했습니다. 아래 포스팅에서 소개했던 spyder 와 비스므리한 package 같더군요. 2013/11/13 - [유틸] - 과학 분석에 사용되는 Python IDE Spyder 아래 공식 홈페이지의 소개를 보니 data-centric 프로그래밍을 위한 툴을 만드는 게 목표라 하는데~ IEP 라는 IDE 가 같이 들어 있어서 사용하기 좋더군요. http://www.pyzo.org/ Pyzo 에는 아래 소개와 같이 다양한 packages 들이 같이 들어 있습니다. Numpy, scipy, matplotlib 와 같은 익숙한 package들도 있었지만 pandas, sympy, nose 와 같이 생소하지만 알아보고 싶은 package 들도 있.. 2014. 12. 3.
Python 배열의 인덱스도 보기 enumerate 오늘은 간단하게 Python 기초중에 기초 중 중요한 부분인 배열의 인덱스를 나열하는 방법에 대해 알아보자. 뭐 파이썬 고수가 아니라 대부분이 기초적인 내용만 적게 되겠지만 암튼 이런 간단한것도 모르면 매우 불편한데 알면 별 것 아닌데도 무지 편하다. 다음과 같은 배열이 있을 때 A=[10,11,12,13] 위 A 라는 배열의 인덱스와 값을 표시하고 싶을 때 나는 보통 아래와 같이 했다. ind= 0 for n in A: print ind, n n+=1 뭐 보면 알겠지만 위 코드는 그냥 파이썬을 하나도 몰라도 상시기 있는 사람이라면 아무나 생각 할 수 있는 코드이다. 그런데 보통 파이선에서는 위와 같은 식 보다는 아래와 같이 enumerate() 라는 함수를 사용한다고 한다. 위 코드는 다음과 같이 동일.. 2014. 11. 30.
Python Recursive File Search, Delete Python 을 이용하여 파일 관리를 할 때 Recursive 하게 탐색하는 방법에 대해 소개한다. Recursive 하게 파일 탐색을 하기 위해서는 os.walk 와 fnmatch.filter 를 사용한다. 내가 사용하는 코드들은 아래와 같다. 하위의 해당하는 파일들을 다 지고 싶다면 AllFileDelete() 함수를 하위의 모든 관련 파일들을 탐색하고 싶다면 AllFileList() 함수를 사용한다. 코드 아래 부분의 main 을 보면 사용방법을 확인 할 수 있을 것이다. 지우고자 하는 파일이 들어있는 최상위 폴더와 지우고자하는 파일의 확장자들을 죽 나열 하면 된다. 아래 코드에서는 C:\temp 폴더아래 있는 zip 파일과 txt 파일을 다 찾는 예이다. 2014. 11. 30.
Python dictionary 안의 dictionary 데이터 타입 Python 사용시 dictionary 안에 dictionary 를 계속 해서 추가하고 싶은 경우가 있습니다. 마치 우리가 사용하는 탐색기의 폴더 트리 구조와 같이 말이죠 . Python에는 collections 이라는 모듈에서 deque 를 비롯하여 다양한 데이터 타입을 제공하는데 이중에 defaultdict 이라는 타입을 제공하고 있습니다. 이를 활용하면 위에 설명한 Tree 구조도 쉽게 만들 수 있습니다. Tree() 구조에 대해서는 아래 주소에서 소개합니다. https://gist.github.com/hrldcpr/2012250 위 주소에서 소개를 하므로 사용법에 대해서는 간단히 예를 들어보죠. 위 주소에서는 json.dumps 를 사용하여 사용하는 데이터 타입에 대해 console 에 나타냈는데.. 2014. 11. 16.
Eclipse Python Plugin Pydev 설치 Eclipse 를 사용하기 위해서는 일단 자바를 설치 해야 한다. 자바 jdk 는 아래 주소에서 설치 가능하다. http://www.oracle.com/technetwork/java/javase/downloads/index.html 다음으로 Eclipse 를 설치한다. 아래 주소에서 설치 가능하다. https://www.eclipse.org/downloads/ Eclipse 는 다양한 버전이 있는데 pydev 를 추가적으로 설치해야 하므로 아무 버전이나 설치해도 될 것 같다. 나는 보통 아래 그림과 같이 Eclipse IDE for Java Developers, Eclipse IDE for Java EE Developers 둘 중에 하나를 설치하곤 한다. 자바만 정상적으로 설치되어 있다면 Eclipse .. 2014. 11. 15.
Python에서 Clipboard 사용하기 pyperclip 아래 포스팅에서 Perl을 이용한 윈도우 Clipboard 접근 방법에 대해 설명 드린 적이 있는데요~ 2014/03/12 - [programming language/Perl] - Perl Clipboard 사용하기 오늘은 Python에서 Clipboard 사용하는 방법에 대해 설명 드리려 합니다. Python 에서 clipboard 에 접근을 할 수 있게 해주는 모듈은 pyperclip 입니다. Pip search 를 해서 검색을 해보니 다음과 같이 A cross-platform clipboard module for Python. 이라고 나오네요~ CMD 창에서 간단하게 아래 명령어로 설치 할 수 있습니다. Pip install pyperclip Pip 가 설치 안된 분들은 아래 포스팅 참조해서 설치하.. 2014. 4. 22.
Python BeautifulSoup 를 사용한 로또 번호 불러오기 Python BeautifulSoup 를 사용한 로또 번호 불러오기에 대해 소개한다. 공식 홈페이지는 다음과 같으며~ http://www.crummy.com/software/BeautifulSoup/ BeautifulSoup 의 설치는 pip 를 사용한다. 최신 버전은 아래 명령어로 설치 가능하다. pip install beautifulsoup4 pip 가 설치 방법에 대해서는 아래 주소 글 참조 바란다. 2013/09/23 - [유틸] - Windows 에서 Python easy_install, pip 설치 설치가 다 완료 되었으면 아래와 같이 코딩하고 실행 시킨다. from bs4 import BeautifulSoup import urllib2 url='http://www.nlotto.co.kr/co.. 2014. 4. 21.
ipython으로 unique 하게 sorting 하기 특정 파일에 다음과 같은 단어 리스트가 있는 경우 중복을 제거하고~ ABC 순서로 sorting 을 해야 하는 경우가 있습니다. abacuses abaft abalone abalones abacuses abandon abandoned abalones 한 10줄 안팎이면 노가다로 하겠지만 몇 천 몇 만 줄이 되면 노가다로 하기에는 무리가 있죠~ 이런 경우 Perl이나 Python과 같은 스크립트 언어가 제격일 텐데요~ 오늘은 그냥 무슨 바람이 불어서 그런지 그냥 python을 사용하고 싶더군요. 아래 포스팅에서 소개를 했지만 제가 요즘 Spyder 같은 툴에 매력을 느껴서 그런 것도 같습니다. 2013/11/13 - [유틸] - 과학 분석에 사용되는 Python IDE Spyder 어쨌든 ipython을 .. 2013. 11. 26.
Windows 에서 Python easy_install, pip 설치 Perl 에 CPAN(The Comprehensive Perl Archive Network)이 있다면 Python 에는 easy_install 과 pip 가 있다고 할 수 있을 것 같네요. CPAN 을 사용하듯이 easy_install 과 pip 를 사용하면~ command 창에서 쉽게 원하는 package 를 설치 할 수 있습니다. 검색을 해보니 easy_install 은 향후에는 없어질 거라고 하더군요. 뭐 난중에 없어진다고 하더라도~ 현재까지는 잘~~ 사용되고 있고 easy_install 을 사용해서 pip 를 설치할 것이므로~ 오늘의 포스팅에서는 easy_install 부터 설치를 해보죠~ 현재 제 컴퓨터 환경은 Windows 7, 64 bits 이고~ python 2.7 버전이 설치되어 있는 상.. 2013. 9. 23.
Python wave file read 파이썬은 굉장히 직관적이면서도 쉬운 문법과 잘 정리된 매뉴얼 등 장점이 참 많은 언어라는 생각이 듭니다. 요즘 여차 저차 해서 파이썬을 만지작 거리고 있는데~ 참 재미 있더군요. 조금만 알아도 굉장히 많은 것들을 할 수 있는 효율적인 언어구나 하는 생각이 딱~~ 들었습니다. 어쨌든 오늘은 Python 에서 wav 파일을 읽는 방법에 대해 설명 드리려 합니다. 뭐 아는 분들은 아시겠지만 간단하더군요. http://stackoverflow.com/questions/2060628/how-to-read-wav-file-in-python 아래 코드는 위 주소를 참조하여 만들었습니다. 위 주소의 댓글들을 보니 audiolab 이라는 모듈도 있는 것 같고 Scipy를 이용해서도 읽어 들일수가 있는 것 같더군요. 저는.. 2012. 6. 2.
Vim Python autocomplete plugin 요즘 Python 에 부쩍 관심이 높아지면서~ Python 을 좀 공부 해 볼까~~ 하다가 기왕이면 Vim 으로 코딩 해보고 싶어서, Python 관련 plugin 이 있나 구글링 해 봤더니~ 바로 나오는군요. 역시 내가 생각하는 건 세상에 다~~~ 있어 라는… 생각이 다시 한번 드는 순간이었습니다. 어쨌든 오늘은 Vim 에서 사용 가능한 Python autocomplete plugin 에 대해 소개 하려 합니다. http://www.vim.org/scripts/script.php?script_id=850 위 주소에서 plugin 을 다운로드 받을 수 있구요~ 위 주소에서 쭉~~ 내려 보시면 zip 파일을 다운로드 받을 수 있습니다. 저는 현재 윈도우 7 환경이라 윈도우를 기준으로 설명 드릴께요~ 가장 .. 2012. 5. 10.
Python numpy, scipy, matplotlib 스크립트 언어에 관심을 가지면서 자연스럽게Python 에 대해서도 조금씩 관심을 가지고 이용을 해 보고 있습니다. Python은 다양한 장점이 있는 언어이지만 수치 분석을 하는 저로서는 Python 에서 복소수 타입이 기본으로 제공이 된다는 측면이 굉장한 장점으로 보였습니다. MATLAB 과 같은 수치 분석에 특화된 소프트웨어를 제외 하면 복소수를 기본 타입으로 제공해 주는 언어는 드물었는데, python 은 다르더군요. 그래서 찾아보니 Python 에서 수치분석을 할 때 이용할 수 있는 모듈들로 numpy, scipy 와 같은 모듈과 그래프를 그리는데 이용되는 matplotlib 같은 모듈 등이 있길래 ~~ 오늘은 이 모듈의 설치 방법에 대해 간단하게 알아보겠습니다. 일단 Python 을 설치부터 해야.. 2012. 3. 8.