본문 바로가기
코딩/자동화

파이썬에서 ID, 비밀번호 입력이나 파일, 폴더 선택 창을 띄우는 방법/tkinter, pyautogui

by 나홀로코더 2021. 12. 3.
반응형

목차

1. ID나 비밀번호 입력 창 띄우기

2. 파일이나 폴더 선택 창 띄우기


 

파이썬을 배워가면서 이런저런 툴들을 만들다보면, 프로그램 실행 중에 입력 창을 띄우고 싶은 경우가 많이 생긴다.

 

예를 들면, 셀레니움을 이용해 어느 웹페이지에 로그인해서 필요한 동작을 하는 웹자동화 프로그램을 만들었다면, ID와 비밀번호를 입력해야 하는데, ID는 몰라도 비밀번호는 스크립트에 저장해두기보다 직접 입력하고 싶을 것이다.

 

또한 컴퓨터에 저장된 파일을 불러와야 하는 경우, 파일 선택 창이나 폴더 선택 창을 불러와야 할 때가 있다.

 

그런 경우에 tkinter 라이브러리나 pyautogui 라이브러리를 활용하여 간단하게 텍스트 입력창이나 파일 선택 창을 불러오는 방법을 소개한다.

 

 

1. ID나 비밀번호 입력 창 띄우기

 

ID나 비밀번호같은 문자열 입력창은 tkinter와 pyautogui 중 어느 쪽을 이용해도 가능하다.

 

둘중에 pyautogui가 더 간단하므로 먼저 소개하겠다.

 

PYAUTOGUI

 

pyautogui는 아래와 같이 딱 두 줄이면 문자열 입력 창을 띄울 수가 있다.

 

import pyautogui
ID = pyautogui.prompt(title='ID',text='ID를 입력하세요')

 

예제는 ID를 입력 받는다고 가정하고 작성하였다. 위 코드를 실행하면 아래와 같은 입력창이 뜬다.

 

입력창에 내용을 입력한 뒤에 OK를 누르면, 입력한 내용이 ID 변수에 저장된다.

 

pyautogui를 이용해 구현한 문자열 입력창

 

한편 pyautogui는 비밀번호 입력 창을 띄워주는 별도의 함수를 제공한다.

 

 

import pyautogui
PW = pyautogui.password(title='PW', text='PW를 입력하세요.')

 

위 코드를 실행해보면, 입력창에 입력한 내용이 마스킹(별표 처리)된다.

 

비밀번호가 마스킹된 모습

 

TKINTER

 

파이썬의 대표적인 GUI 라이브러리인 tkinter도 위와 유사한 기능을 제공한다.

 

 

 

import tkinter
from tkinter import simpledialog
root = tkinter.Tk()  # 루트 윈도우 생성
root.withdraw()  # 루트 윈도우 숨기기
ID = simpledialog.askstring(title="ID", prompt="ID를 입력하세요.", parent=root)

 

pyautogui보다는 조금 복잡해 보인다. tkinter에서는 기본적으로 GUI 프로그램이 하나 돌아가고 있는 상태에서 별도로 대화창을 띄워주는 개념이기 때문에 코드가 더 필요하다.

 

결과물은 위에서 본 것과 유사하므로 사진은 생략한다.

 

pyautogui에서 본 것처럼 입력 내용을 마스킹하고 싶다면 위의 코드에서 askstring 함수의 인자를 하나 더해주면 된다.

 

PW = simpledialog.askstring(title="PW", prompt="PW를 입력하세요.", show="*", parent=root)

 

 

반응형

 

2. 파일이나 폴더 선택 창 띄우기

 

문자열이 아니라 파일이나 폴더를 선택해 그 경로를 가져오고 싶은 경우에는 tkinter를 사용해야 한다.

 

위에서 본 코드에서 두번째 줄과 다섯번째 줄만 고치면 된다.

 

import tkinter
from tkinter.filedialog import askopenfilename
root = tkinter.Tk()  # 루트 윈도우 생성
root.withdraw()  # 루트 윈도우 숨기기
filename = askopenfilename(parent=root, filetypes=[("Word Processor Files",".hwp")])

 

askopenfilename의 인자로 넘겨준 것 중에 filetypes는 필수 사항은 아니다. 특별히 원하는 유형의 파일이 있는 경우에만 넘겨준다.

 

위의 코드를 실행하면 컴퓨터를 사용하면서 흔히 봐왔던 파일 선택 창이 뜨는데, 원하는 파일을 선택하고 열기를 누르면 선택한 파일의 경로가 filename 변수에 저장된다.

 

파일이 아니라 폴더의 경로를 불러와 저장하고 싶다면 위 코드의 둘째, 다섯째 줄을 아래 코드로 대체한다.

 

from tkinter.filedialog import askdirectory
dir = askdirectory(parent=root)

 

반응형

댓글