본문 바로가기

Language/Python

[Python] 현재 실행 중인 Process Information 가져오기 Python을 이용하여 현재 실행 중인 프로세스 리스트 정보를 따오는 걸 오랜만에 할 생각에 검색 좀 하다가 예전에는 Win32com을 이용했던 거 같은데 그 것 보다 아주 심플한 녀석을 발견.. 언제 wmi를 직접 사용할 수 있는 모듈이 나온 건지... 분명 나중에 또 까먹을테니 메모 메모~ import wmi WMI_OBJ = wmi.WMI() process_list = WMI_OBJ.Win32_Process() for process in process_list: print process break 이전에는 분명 win32com의 모듈을 시작으로 코드가 길었었는데.. wmi를 직접 사용하는 모듈이 나올 줄이야... 프로세스의 전체 리스트를 출력하면 양이 많아지니 딱 처음 프로세스의 정보만 출력하고 b.. 더보기
[Python] pyinstaller 사용 시 unicodedecodeerror 발생 Pyinstaller는 파이썬을 exe로 빌드해주는 플러그인이다.(py2exe가 지원하지 못하는 몇 부분 때문에 같이 사용하고 있음..) 개인 랩탑에서는 문제 없이 사용하고 있던 플러그인이 회사 랩탑에서는 파일 빌드 시에 unicodedecodeerror: 'ascii' codec can't decode byte 0xc5 in position~~ (이하 생략) 메세지가 발생하는 것이었던 것이었... 음! 유니코드를 쓰지도 쓸 일 조차 없던 코드를 빌드하는데 계속 unicodedecodeerror 오류가 발생을 하고 에러 발생 지점은 내가 작성한 코드가 아닌 pyinstaller 안에서 터지고 있던 것. 뭐가 문제인지 삽질을 하면서 찾으려다가(일일히 코드 따라가서면서 디버깅 하기엔 노가다가 너무 심하므로... 더보기
[Python] 드라이브의 경로 가져오기 [그림. 1] Drives 기존에 작성했던 루트에서 작성하면 문제될 것이 없었는데, 함수화 시켜버리면 ValueError 를 뿜어내서 다시 정리를 해본다. 로컬 드라이브 또는 이동식 저장장치 중, 인식되어 있는 녀석들의 드라이브 명을 알아내는 소스를 검색하다가알게 된 것... 이거 땜에 무슨 HID Device를 쪼물딱 거릴 때 쓰는 패키지도 깔고 그랬지만 그냥 이게 젤 편한 것 같다. 그러나... 멀티리더기를 처리할 수 없는 장벽을 만나서 아직은 더 검색해야 한다. ㅠㅠ 멀티 리더기는 usb가 안 꼽혀 있어도 드라이브가 활성화 되어 있기에 그걸 건드리면 윈도우가 애러를 내뱉는다. usb가 꼽혔는지 안 꼽혔는지 확실히 체크하려면 드라이브에 접근하는 어떠한 함수라도 써야 하는데, 그 짓을 했다가 애러가 터.. 더보기
[Python] 외부 파일 실행 시에 cmd 쉘을 발생시키지 않는 ShellExecute 파이썬에서 외부 파일을 실행하기 위해서 많이들 사용하는 명령어는 다음의 것들일 것이다. - os.system("실행할 파일") - os.popen("실행할 파일") - subprocess.call("실행할 파일") 이 3가지 중 os 모듈을 이용하는 것은 실행한 파일이 종료되기 전까지는 계속 메모리에 상주가 된다.os.system과 os.popen은 cmd에서 명령어를 입력하는 것과 같은 동작을 해준다.즉, "실행할 파일"을 구동시키게 되면 실행된 것들의 프로세싱이 끝나기 전 까지는 프로세스로서 cmd.exe가메모리에 상주되는 것이다. subprocess만이 cmd를 통하지 않고 바로 실행을 시켜주지만 여전히 "실행할 파일"은 본인을 실행시킨 프로세스에자식 프로세스로 귀속이 된다.(cmd를 거치지는 않았.. 더보기
[Python] JPG 그림 파일 용량 줄이기 연습 삼아 만들고 있는 혼자 쓸 툴에서 jpeg 이미지의 크기를 줄여야 하는 상황이 발생해서 검색을 해보다가파이썬 2.7.x 인지 3.x인지 얘기도 없고 코드들을 보면 맞지 않는 것들도 좀 있고 그래서 답답하던 찰나...(stackoverflow.com 사이트도 암튼 유저들의 집합이라 잘못된 정보 많은 듯.. ㅡㅡㅋ) 날이 추워서 계속 검색하기 귀찮아져서 그냥 검색한 2개의 예제문을 보고 코드 해석하고 안 맞는 부분은유추해서 정리해보니 잘 되었다. 01. from cStringIO import StringIO 02. from PIL import Image 03. 04. file = r'C:\Users\Slays_Desktop\Pictures\logon_img\original.jpg' 05. 06. img.. 더보기
[wxPython] wx.frame 의 style 지정 방법 wxpython을 사용해서 윈도우 창 (프레임)의 스타일을 지정해줄 때에 사용하는 기본은 다음과 같다. import wx app = wx.App() frame = wx.Frame(None, -1, 'frame test', style=wx.DEFAULT_FRAME_STYLE) frame.Show() app.MainLoop() 윈도우의 창을 띄우기 위해 사용되는 아주 기본이 되는 코드이고 실행 결과는 다음과 같다. [그림. 1] 기본 Frame의 모습 위 코드의 2번 째 줄의 인자값들이 바로 윈도우 창을 구성하는 요소가 되는데,창의 사이즈를 고정시킨다거나 또는 최소, 최대, 종료 버튼 등을 활성화 또는 비활성화를 시키고 싶어서검색을 해봤는데.... 윈도우 창의 기본 프레임을 구성하는 건 wx.DEFAULT_.. 더보기
[Pyinstaller] exe 파일 빌드하며 짜증났던 부분 정리 파이썬을 exe 파일로 빌드하기 위해서는 py2exe 라는 플러그인이 필요하다.근데 요놈이 x86 파일은 잘 뽑아내는데 x64 파일은 뽑아내다가 에러를 토하시니... 다른 걸 알아보고 알아보다가 pyinstaller 라는 녀석을 발견하게 되었다. 뭐 사용 방법에 대해서는 검색하면 엄청 많이 나온다.굳이 여기에 다 열거하긴 귀찮고, 설치 부터 사용법 까지 대략 잘 정리해놓으신 분의 블로그 주소를 링크해본다. http://m.blog.naver.com/mandori21/220372958993 그런데 왜 이 글을 쓰기 시작했냐면 현재 Pyinstaller 는 개발자 용 버전까지 해서 3.3xxxx 까지 업데이트 되어 있다.문제점을 몇 가지 기록해두기 위해서 글을 작성해본다. 개인적으로 사용하는 몇 가지에 대해.. 더보기
[wxPython] wx.CheckBox를 이용한 체크박스 만들기 본 내용의 출처는 이글루 블로그의 '하린아빠' 라는 네임을 쓰시는 분의 블로그입니다.[출처] - http://pythondev.egloos.com/109496 행여나 이글루 블로그가 없어지면 참고할 곳이 사라지기에 주인장님께 댓글을 남기고 퍼 옵니다. [wxPython] wx.CheckBox를 이용한 체크박스 만들기 # -*- coding: cp949 -*- #!/usr/bin/python# checkbox.py import wx class MyCheckBox(wx.Frame): def __init__(self, parent, id, title): wx.Frame.__init__(self, parent, id, title, size=(250, 170)) panel = wx.Panel(self, -1) #.. 더보기
[wxPython] wx.ComboBox(콤보 박스)를 사용법 및 이벤트 처리 본 내용의 출처는 이글루 블로그의 '하린아빠' 라는 네임을 쓰시는 분의 블로그입니다.[출처] - http://pythondev.egloos.com/107312 행여나 이글루 블로그가 없어지면 참고할 곳이 사라지기에 주인장님께 댓글을 남기고 퍼 옵니다. [wxPython] wx.ComboBox(콤보 박스)를 사용법 및 이벤트 처리 # -*- coding: cp949 -*- #!/usr/bin/python# combobox.py import wx class MyDialog(wx.Dialog): def __init__(self, parent, id, title): wx.Dialog.__init__(self, parent, id, title, size=(250, 270)) panel = wx.Panel(self.. 더보기
[wxPython] wx.StaticBox를 이용한 컨트롤 그룹만들기 본 내용의 출처는 이글루 블로그의 '하린아빠' 라는 네임을 쓰시는 분의 블로그입니다.[출처] - http://pythondev.egloos.com/107288 행여나 이글루 블로그가 없어지면 참고할 곳이 사라지기에 주인장님께 댓글을 남기고 퍼 옵니다. [wxPython] wx.StaticBox를 이용한 컨트롤 그룹만들기 # -*- coding: cp949 -*- #!/usr/bin/python# staticbox.py import wxclass MyDialog(wx.Dialog): def __init__(self, parent, id, title): wx.Dialog.__init__(self, parent, id, title, size=(260, 250)) # StaticBox 생성 wx.StaticBo.. 더보기
[wxPython] wx.StaticText를 이용한 문자열 출력 본 내용의 출처는 이글루 블로그의 '하린아빠' 라는 네임을 쓰시는 분의 블로그입니다.[출처] - http://pythondev.egloos.com/107269 행여나 이글루 블로그가 없어지면 참고할 곳이 사라지기에 주인장님께 댓글을 남기고 퍼 옵니다. [wxPython] wx.StaticText를 이용한 문자열 출력 # -*- coding: cp949 -*- #!/usr/bin/python# statictext.py import wx class MyFrame(wx.Frame): def __init__(self, parent, id, title): wx.Frame.__init__(self, parent, id, title, wx.DefaultPosition, wx.Size(320, 350)) lyrics1.. 더보기
[wxPython] wx.StaticLine 을 이용한 구분선 추가 본 내용의 출처는 이글루 블로그의 '하린아빠' 라는 네임을 쓰시는 분의 블로그입니다.[출처] - http://pythondev.egloos.com/106918 행여나 이글루 블로그가 없어지면 참고할 곳이 사라지기에 주인장님께 댓글을 남기고 퍼 옵니다. 출처: http://slays.tistory.com/35 [Reverse Engineering] [wxPython] wx.StaticLine 을 이용한 구분선 추가 # -*- coding: cp949 -*- #!/usr/bin/python# centraleurope.py import wxclass MyDialog(wx.Dialog): def __init__ (self, parent, ID, title): wx.Dialog.__init__(self, pare.. 더보기
[wxPython] wx.BitmapButton의 사용 본 내용의 출처는 이글루 블로그의 '하린아빠' 라는 네임을 쓰시는 분의 블로그입니다.[출처] - http://pythondev.egloos.com/106883 행여나 이글루 블로그가 없어지면 참고할 곳이 사라지기에 주인장님께 댓글을 남기고 퍼 옵니다. [wxPython] wx.BitmapButton의 사용 # -*- coding: cp949 -*-#!/usr/bin/python# player.py import wx class MyFrame(wx.Frame): def __init__(self, parent, id, title): wx.Frame.__init__(self, parent, id, title, size=(350, 300)) panel = wx.Panel(self, -1) # 화면용 패널 pnl1.. 더보기
[wxPython] wx.Button를 이용한 Button 이벤트 처리 와 랜덤 숫자 추출 본 내용의 출처는 이글루 블로그의 '하린아빠' 라는 네임을 쓰시는 분의 블로그입니다.[출처] - http://pythondev.egloos.com/106147 행여나 이글루 블로그가 없어지면 참고할 곳이 사라지기에 주인장님께 댓글을 남기고 퍼 옵니다. [wxPython] wx.Button를 이용한 Button 이벤트 처리 와 랜덤 숫자 추출 # -*- coding: cp949 -*- #!/usr/bin/python# buttons.py import wx # 랜덤 처리 유닛 import random # Dialog 사이즈 APP_SIZE_X = 300 APP_SIZE_Y = 200 class MyButtons(wx.Dialog): def __init__(self, parent, id, title): wx... 더보기
[wxPython] 다이얼로그(Dialog) 만들기2 본 내용의 출처는 이글루 블로그의 '하린아빠' 라는 네임을 쓰시는 분의 블로그입니다.[출처] - http://pythondev.egloos.com/104212 행여나 이글루 블로그가 없어지면 참고할 곳이 사라지기에 주인장님께 댓글을 남기고 퍼 옵니다. [wxPython] 다이얼로그(Dialog) 만들기2 # -*- coding: cp949 -*- #!/usr/bin/python# customdialog2.py import wx class MyDialog(wx.Dialog): # 다이얼 로그 초기화 def __init__(self, parent, id, title): wx.Dialog.__init__(self, parent, id, title) vbox = wx.BoxSizer(wx.VERTICAL) st.. 더보기
[wxPython] 다이얼로그(Dialog) 만들기 본 내용의 출처는 이글루 블로그의 '하린아빠' 라는 네임을 쓰시는 분의 블로그입니다.[출처] - http://pythondev.egloos.com/104164행여나 이글루 블로그가 없어지면 참고할 곳이 사라지기에 주인장님께 댓글을 남기고 퍼 옵니다. [wxPython] 다이얼로그(Dialog) 만들기 # -*- coding: cp949 -*- #!/usr/bin/python # customdialog1.py import wx class MyDialog(wx.Dialog): def __init__(self, parent, id, title): wx.Dialog.__init__(self, parent, id, title, size=(350,300)) # 다이얼 로그 구성 처리 sizer = self.Crea.. 더보기
[wxPython] 이벤트05 (사이즈 이벤트 예제 : wx.EVT_KEY_DOWN) 본 내용의 출처는 이글루 블로그의 '하린아빠' 라는 네임을 쓰시는 분의 블로그입니다.[출처] - http://pythondev.egloos.com/104082 행여나 이글루 블로그가 없어지면 참고할 곳이 사라지기에 주인장님께 댓글을 남기고 퍼 옵니다. [wxPython] 이벤트05 (사이즈 이벤트 예제 : wx.EVT_KEY_DOWN) # -*- coding: cp949 -*- #!/usr/bin/python# keyevent.py import wxclass KeyEvent(wx.Frame): def __init__(self, parent, id, title): wx.Frame.__init__(self, parent, id, title) panel = wx.Panel(self, -1) # 키누름 이벤트 .. 더보기
[wxPython] 이벤트04 (사이즈 이벤트 예제 : wx.EVT_PAINT) 본 내용의 출처는 이글루 블로그의 '하린아빠' 라는 네임을 쓰시는 분의 블로그입니다.[출처] - http://pythondev.egloos.com/104069 행여나 이글루 블로그가 없어지면 참고할 곳이 사라지기에 주인장님께 댓글을 남기고 퍼 옵니다. [wxPython] 이벤트04 (사이즈 이벤트 예제 : wx.EVT_PAINT) # -*- coding: cp949 -*-#!/usr/bin/python # paintevent.py import wxclass PaintEvent(wx.Frame): def __init__(self, parent, id, title): wx.Frame.__init__(self, parent, id, title) # Paint 이벤트 함수와 연결 self.Bind(wx.EVT_.. 더보기
[wxPython] 이벤트03 (사이즈 이벤트 예제 : wx.EVT_SIZE) 본 내용의 출처는 이글루 블로그의 '하린아빠' 라는 네임을 쓰시는 분의 블로그입니다.[출처] - http://pythondev.egloos.com/104036 행여나 이글루 블로그가 없어지면 참고할 곳이 사라지기에 주인장님께 댓글을 남기고 퍼 옵니다. [wxPython] 이벤트03 (사이즈 이벤트 예제 : wx.EVT_SIZE) #!/usr/bin/python # -*- coding: cp949 -*- # moveevent.py import wx class MoveEvent(wx.Frame): def __init__(self, parent, id, title): wx.Frame.__init__(self, parent, id, title) # 좌표값 출력 라벨 구성 wx.StaticText(self, -1.. 더보기
[wxPython] 이벤트02 (사이즈 이벤트 예제 : wx.EVT_SIZE) 본 내용의 출처는 이글루 블로그의 '하린아빠' 라는 네임을 쓰시는 분의 블로그입니다.[출처] - http://pythondev.egloos.com/104016 행여나 이글루 블로그가 없어지면 참고할 곳이 사라지기에 주인장님께 댓글을 남기고 퍼 옵니다. [wxPython] 이벤트02 (사이즈 이벤트 예제 : wx.EVT_SIZE) #!/usr/bin/python # -*- coding: cp949 -*- # sizeevent.py import wx class SizeEvent(wx.Frame): def __init__(self, parent, id, title): wx.Frame.__init__(self, parent, id, title) # 사이즈 조정 이벤트 연결 self.Bind(wx.EVT_SIZE.. 더보기