안녕하세요 철사마 입니다.

 

파이썬에서 자주 사용하는 날짜 관련 함수를 정리해 보았습니다.

 

import datetime

now = datetime.datetime.now()
print(now)          # 2015-04-19 12:11:32.669083
 
nowDate = now.strftime('%Y-%m-%d')
print(nowDate)      # 2015-04-19
 
nowTime = now.strftime('%H:%M:%S')
print(nowTime)      # 12:11:32
 
nowDatetime = now.strftime('%Y-%m-%d %H:%M:%S')
print(nowDatetime)  # 2015-04-19 12:11:32

 

파이썬으로 개발을 하면서 py로 파일을 만들면 파이썬 설치도 되어 있어야 하고 다른 사람에게 배포하기가 참 애매한데, exe로 변환할 수 있는 방법이 있어서 정리해 보았습니다.

매우 편리하고, 유용한 기능인 것 같습니다.

기본적으로 제공하는 패키지이며 간단하게 설치하면 됩니다.

 

Pyinstaller 공식 사이트: www.pyinstaller.org

 

Pyinstaller 설치

pip install pyinstaller

 

이렇게 잘 설치가 됩니다.(경고 문구는 버전 알림이니 무시해도 됩니다.)

 

설치가 잘 되면 커멘드에서 명령어를 실행하면 됩니다.

 - 그리고 우선 파이썬 PATH가 설정이 잘 되어 있어야 겠죠? 전 이게 꼬여서 엄청 고생했습니다. ㅠ 결국 재 설치 후 PATH부터 잘 설정해서 성공했지만 3시간동안 삽실을 했더니 넘 피곤하더군요 ㅠㅠ

 

Window 10 사용자라면 “Windows PowerShell”에서 위 명령어를 실행해줍니다.

자신이 .exe 실행 파일로 만들고 싶은 .py가 있는 디렉토리로 이동해서 Shift + 마우스 오른쪽을 누른 후 “여기에 PowerShell 창 열기”를 눌러줍니다.

몇가지 명령어가 있습니다.

 

 

기본 명령어

pyinstaller 파이썬_파일_이름.py

 - .py 파일을 .exe 파일로 변환합니다.

 

 

콘솔창 안 뜨게 하기

pyinstaller --noconsole 파이썬_파일_이름 .py

 - exe 파일 실행 시 콘솔창이 뜨게 되는데 안 뜨게 하고 싶으시면 아래 명령어를 이용해서 .py 파일을 다시 .exe 파일로 변환해줘야 합니다.

 

 

exe 파일에 모든 라이브러리 압축하기

pyinstaller --onefile --noconsole 파이썬_파일_이름 .py

 

명령어를 입력하면 해당 폴더에 추가로 폴더들이 생김입니다.

새로 생긴 폴더중에 dist 폴더거 았눈데 그 폴더 안에 빌드된 exe파일이 있습니다.

이제 파이썬으로 만든 파일을 exe파일로 만들어서 쉽게 배포해 보세요 :)

감사합니다.

안녕하세요 철사마 입니다.

요즘 파이썬을 공부하고 있는데, 처음 설치할 때부터 뭔가 꼬였는지 안되는게 되게 많더라구요

그래서 모두 삭제하고 다시 설치하는데 왠걸... 설정이 그대로 남아있었습니다.

 

 

고민고민 하다가 Visual Studio Code의 설정을 모두 지울 수 있는 방법을 찾아서 공유 합니다.

저처럼 삽질하지 말고, 깔끔하게 삭제해 보세요 :)

 

1. 제어판 > 프로그램 > 프로그램 기능 > 프로그램 제거 메뉴에서 앱 삭제

 

2. C:\Users\사용자폴더 폴더 안의 .vscode 폴더 지우기

 

3. C:\Users\사용자폴더\AppData\Roaming 폴더안의 Code 폴더 지우기

 

이렇게 3단계로 지우고 윈도우를 재부팅하면 깔끔하게 삭제가 됩니다.

 

 

처음부터 문제 없을 가능성이 높지만 저처럼 설정이 꼬여서 다시 설치하실 때는 제가 안내해 드린 순서대로 고고~!

그리고 VS Code를 설치하고 Python을 설치하시면 편하게 설치가 됩니다.

그럼 다들 실수 없이 개발환경을 구축해 보세요! :)

Python 에서는 다양한 편리한 라이브러리를 제공하니다.

화면을 제어하기 위해서 가장 기본이 되는 기능이 마우스, 키보드 제어와 관련된 것인데요.

해당 기능을 쉽게 구현하기 위한 라이브러리와 예제를 찾아보려고 합니다.

 

라이브러리 이름 : pyautogui

라이브러리 설치 방법 : 콘솔에서 pip install pyautogui 명령어를 입력하여 설치

 

 

주요 마우스 관련 코드 정리

import pyautogui

# 좌표 객체 얻기 
position = pyautogui.position()

# 화면 전체 크기 확인하기
print(pyautogui.size())

# x, y 좌표
print(position.x)
print(position.y)

# 마우스 이동 (x 좌표, y 좌표)
pyautogui.moveTo(500, 500)

# 마우스 이동 (x 좌표, y 좌표 2초간)
pyautogui.moveTo(100, 100, 2)  

# 마우스 이동 ( 현재위치에서 )
pyautogui.moveRel(200, 300, 2)

# 마우스 클릭
pyautogui.click()

# 2초 간격으로 2번 클릭
pyautogui.click(clicks= 2, interval=2)

# 더블 클릭
pyautogui.doubleClick()

# 오른쪽 클릭
pyautogui.click(button='right')

# 스크롤하기 
pyautogui.scroll(10)

# 드래그하기
pyautogui.drag(0, 300, 1, button='left')

 

 

주요 키보드 관련 코드 정리

import pyautogui 
import pyperclip

pyautogui.write('hello world!') # 괄호 안의 문자를 타이핑 합니다. 한글은 인식하지 않습니다.
pyautogui.write('hello world!', interval=0.25) # 각 문자를 0.25마다 타이핑합니다. 

pyperclip.copy("안녕하세요") # 클립보드에 텍스트를 복사합니다. 
# 한글을 입력하려면, pyperclip 모듈을 통해서 한글을 복사 후 입력할 수 있습니다.
pyautogui.hotkey('ctrl', 'v') # 붙여넣기 (hotkey 설명은 아래에 있습니다.)

pyautogui.press('shift') # shift 키를 누릅니다.
pyautogui.press('ctrl') # ctrl 키를 누릅니다. 

# keyDown()은 키를 누른채로 있는거고 keyUp()은 누른 키를 떼는 겁니다.
pyautogui.keyDown('ctrl') # ctrl 키를 누른 상태를 유지합니다.
pyautogui.press('c') # c key를 입력합니다. 
pyautogui.keyUp('ctrl') # ctrl 키를 뗍니다. 

# 키를 여러번 입력 하려면 다음과 같은 방식으로 입력하면 됩니다.
pyautogui.press(['left', 'left', 'left']) # 왼쪽 방향키를 세번 입력합니다.
pyautogui.press('left', presses=3) # 왼쪽 방향키를 세번 입력합니다. 
pyautogui.press('enter', presses=3, interval=3) # enter 키를 3초에 한번씩 세번 입력합니다. 

# 여러 키를 동시에 입력해야 할 때 활용합니다.
pyautogui.hotkey('ctrl', 'c') # ctrl + c 키를 입력합니다. 

# 키보드 키의 명칭 리스트
['\t', '\n', '\r', ' ', '!', '"', '#', '$', '%', '&', "'", '(',
')', '*', '+', ',', '-', '.', '/', '0', '1', '2', '3', '4', '5', '6', '7',
'8', '9', ':', ';', '<', '=', '>', '?', '@', '[', '\\', ']', '^', '_', '`',
'a', 'b', 'c', 'd', 'e','f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o',
'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~',
'accept', 'add', 'alt', 'altleft', 'altright', 'apps', 'backspace',
'browserback', 'browserfavorites', 'browserforward', 'browserhome',
'browserrefresh', 'browsersearch', 'browserstop', 'capslock', 'clear',
'convert', 'ctrl', 'ctrlleft', 'ctrlright', 'decimal', 'del', 'delete',
'divide', 'down', 'end', 'enter', 'esc', 'escape', 'execute', 'f1', 'f10',
'f11', 'f12', 'f13', 'f14', 'f15', 'f16', 'f17', 'f18', 'f19', 'f2', 'f20',
'f21', 'f22', 'f23', 'f24', 'f3', 'f4', 'f5', 'f6', 'f7', 'f8', 'f9',
'final', 'fn', 'hanguel', 'hangul', 'hanja', 'help', 'home', 'insert', 'junja',
'kana', 'kanji', 'launchapp1', 'launchapp2', 'launchmail',
'launchmediaselect', 'left', 'modechange', 'multiply', 'nexttrack',
'nonconvert', 'num0', 'num1', 'num2', 'num3', 'num4', 'num5', 'num6',
'num7', 'num8', 'num9', 'numlock', 'pagedown', 'pageup', 'pause', 'pgdn',
'pgup', 'playpause', 'prevtrack', 'print', 'printscreen', 'prntscrn',
'prtsc', 'prtscr', 'return', 'right', 'scrolllock', 'select', 'separator',
'shift', 'shiftleft', 'shiftright', 'sleep', 'space', 'stop', 'subtract', 'tab',
'up', 'volumedown', 'volumemute', 'volumeup', 'win', 'winleft', 'winright', 'yen',
'command', 'option', 'optionleft', 'optionright']

 

주요 이미지 관련 코드 정리

import pyautogui as pg

# 원하는 이미지를 5.png로 저장해 줍니다. 그리고 이미지파일을 소스파일과 같은 위치로 이동시킵니다.
button5location = pg.locateOnScreen('5.png') # 이미지가 있는 위치를 가져옵니다. 
print(button5location)

# Box(left=1295, top=540, width=38, height=32)
# left = x 좌표, top = y 좌표, width = 너비, height = 높이 입니다.

button5location = pg.locateOnScreen('5.png')
point = pg.center(button5location) # Box 객체의 중앙 좌표를 리턴합니다. 
print(point)

# 출력결과는 Point 객체 입니다. Point(x=1314, y=556)

안녕하세요 철사마 입니다.

제가 요즘에 Python에 관심이 있어서 알아가고 있는 데, 유용한 정보들은 정리해 보려고 합니다.

Python은 전세계에서 가장 많이 추천되는 언어중 하나라고 합니다.

그만큼 강력하고 쉽다고 하네요.. 물론 어떤 언어든 중급 이상이 되려면 다 어렵긴 합니다. ^^

 

 

파이썬이란?

파이썬(영어: Python)은 1991년 프로그래머인 귀도 반 로섬이 발표한 고급 프로그래밍 언어로, 플랫폼에 독립적이며 인터프리터식, 객체지향적, 동적 타이핑(dynamically typed) 대화형 언어이다. 파이썬이라는 이름은 귀도가 좋아하는 코미디 〈Monty Python's Flying Circus〉에서 따온 것이다.

파이썬은 비영리의 파이썬 소프트웨어 재단이 관리하는 개방형, 공동체 기반 개발 모델을 가지고 있다. C언어로 구현된 사이썬 구현이 사실상의 표준이다. - 출처 : 위키백과

 

 

파이썬을 사용하려면 다양한 툴을 활용해야 하는데 추천되는 툴이 많지만 전 그중 Visual Studio Code 라는 툴을 설치해 보았습니다. 개인적으로 가장 UI가 편리하고 제공되는 라이브러리의 연계가 좀 쥡지 않았나 싶습니다.

 

Visual Studio Code 란?

비주얼 스튜디오 코드(영어: Visual Studio Code)는 마이크로소프트가 마이크로소프트 윈도우, macOS, 리눅스용으로 개발한 소스 코드 편집기이다. 디버깅 지원과 Git 제어, 구문 강조 기능등이 포함되어 있으며, 사용자가 편집기의 테마와 단축키, 설정 등을 수정할 수 있다.

비주얼 스튜디오 코드는 깃허브가 개발한 일렉트론 프레임워크를 기반으로 구동된다. 그러나 같은 일렉트론 기반의 편집기 아톰을 포크한 것은 아니며, 비주얼 스튜디오 온라인 에디터(코드명 "모나코")를 기반으로 개발되었다. - 출처 : 위키백과

 

앞으로 다양한 파이썬과 VS Code의 내용을 정리할 수도 있지만, 우선 기초적인 단축키 부터 좀 정리해 보려고 합니다. 저도 단축키 정리된곳을 찾기 어려워서 불편했거든요, 개발을 하다보면 단축키를 많이 알면 개발 속도를 줄일 수 있어서 좋습니다. :)

 

공식 사이트에서 공지하는 단축키 정리 : demun.github.io/vscode-tutorial/shortcuts/

 

단축키 - Visual Studio Code tutorial

단축키 파일 > 기본 설정 > 바로가기 키 에서 현재 활성화된 키보드 단축키를 볼 수 있습니다 . 기본 편집 키 명령 명령 ID ctrl+X 행 삭제 (빈 선택) editor.action.clipboardCutAction ctrl+C 행 복사 (빈 선택) e

demun.github.io

 

 

외워두면 편리한 단축키는 따로 정리해 보았습니다.

1. Alt + Shift + F -> 입력 라인 자동 정렬( Beauty lib 설치되어있어야함) "코드 format"
2. Ctrl + [ or ] -> 들여쓰기, 내어쓰기
3.  code .  -> cmd 창에서 현재 디렉토리로 visual studio code를 실행하려 할 때
4.  Alt + <방향키>  -> 해당 커서에 있는 행 내용을 위아래로 이동
5. Ctrl + Shift + K  -> 해당 커서에 있는 행 삭제
6. Ctrl + Shift + P -> Show all commands ( VS Code에서 사용할 수 있는 모든 명령어를 입력 할 수 있다.)
  -> process explorer 입력시 메모리 상황창 호출 됨(느려질시 이거 켜서 필요없는 프로세스 kill)
  -> show running extensions 입력시 VS Code에서 사용하고 있는 extensions 확인 가능
7. Ctrl + Alt + 위/아래 화살표 -> 위아래로 커서를 늘려서 동시에 여러줄 수정할 수 있도록 하는 기능
8. Ctrl + P or E -> Quick Open(파일명 여기서 입력하면 한방에 찾을 수 있음)
9. Ctrl + Shift + T -> Re Open(방금 전에 닫은 파일을 다시 열고 싶을때 사용)
10. Ctrl + B -> 토글 사이드 바
11. Ctrl + K 누른후 잠시 후 Z -> 에디트 창 전체화면/해제
12. Ctrl + Space -> IntelliSense(입력시 자동 추천메뉴? - 이클리스 기능?)
13. F12 or Ctrl + 해당 정의 마우스 클릭 -> 정의로 가기(Go to Definition) 
13-1. 정의 누르고 F2 -> 해당정의 모든 변경
13-2. Shift + F12 -> 모든 정의 찾아서 리스트화.
14. Shift + alt + left or right -> 셀렉션 축소 확장
15. Shift + alt + 드래깅 -> 컬럼(박스) 셀렉션
16. Shift + alt + 위/아래 방향키 -> 셀렉션 위/아래 로 복사
17. Ctrl + u -> 셀렉션 되돌리기
18. Ctrl + Shift + \ -> () 또는 {} 괄호의 시작점이나 끝점으로 이동함.

 

+ Recent posts